项目

一般

简介

宕机后,系统core文件的位置及打开方式

chen zh大约 2 年 之前添加

在进程发生宕机时,如果没有生成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命令可以看具体的原因