第一步:首先需要一个进程的coredump文件,怎么搞出coredump文件呢?
1、 ps -fax|grep 进程名称 找到进程的pid
2、gdb -p pid 调试进程
3、gcore coredump名称 则生成core文件
第二步:找出coredump文件的应用程序
1、gdb -c corefile 使用gdb调试core文件
2、info auxv 索引31对应的是core文件的应用程序
第三部:gdb使用应用程序调试coredump文件
gdb coredump应用程序 coredump文件 调试coredump文件
通过以上三步就可以调试coredump文件了
通过以下命令调试coredump文件
info threads 显示所有线程
bt 显示线程堆栈信息
thread thread_num 切换线程
frame num 切换栈
info r 显示当前帧的寄存器信息 (每一帧的寄存器信息都是不相同的)
readelf应用coredump
readelf -h 读取coredump文件头
readelf -wl 读取应用程序debug_line
readelf -wf 读取应用程序fde和cie信息