宕机后,系统core文件的位置及打开方式
在进程发生宕机时,如果没有生成hs_err**的文件,一般操作系统都会生成进程相关的core文件
1.core文件的具体路径:
1.1 cat /proc/sys/kernel/core_pattern
可以查看到core文件的具体路径和记录方式,也可以自行修改:
1.2 如果1.1的方式没有,只能用find / -name 'core.*'查找一下,一般core文件是以core.**.**的方法执行的
查找后可以/var/log/messages(操作系统日志)相关进程发生core字段的日志 与core.*的生成时间进行对比
2.如果没有core文件生成呢?
可以ulimit -a 查看一下core file size的值(0表示不生成core文件,unlimited表示不限制)
如果为0,则执行 ulimit -c unlimited 修改core file size为不限制,下次则会生成core文件
3.如何打开core文件?
可参考此链接:https://blog.csdn.net/dream_lixiang/article/details/78030412
core文件一般需要gdb命令打开,因为core文件和jdk息息相关,如果是打开其他环境的core文件,需要指定其他环境 相关版本的jdk,命令如下:
gdb /home/dear/smb/environments/jdk/bin/java(java命令路径) core.4865(core dump文件名称)
如果指定jdk后,打开仍然提示warning: Selected architecture i386:x86-64 is not compatible with reported target architecture i386
则表示两个环境的cpu架构不一致,需要使用同个架构的
如果jdk和架构都一致的话,进入gdb后,输入bt命令可以看具体的原因