如何使用gdb调试coredump文件

目录

coredump文件是啥

使用gdb命令对core文件进行调试:

程序崩溃了没产生coredump文件怎么办:

gdb怎么调试coredump文件


coredump文件是啥

        coredump是由于程序异常或者bug在运行时异常退出或者终止,进行运行时突然崩溃得一瞬间得快照,生成一个core文件,这个core文件记录了程序在运行过程时得内存,寄存器状态,内存指针和函数堆栈信息等等。

使用gdb命令对core文件进行调试:

如何使用gdb调试coredump文件_第1张图片

使用gdb:如何使用gdb调试coredump文件_第2张图片

如何使用gdb调试coredump文件_第3张图片

小结下:

  • C/C++程序崩溃的情况下,可能会产生 coredump文件。
  • coredump文件保存了进程崩溃时,内存、寄存器、运行堆栈等等的信息。后续可以通过coredump文件进行查看进程崩溃的原因,进而修复代码bug。

程序崩溃了没产生coredump文件怎么办:

使用ulimit -a 查看core file size 的值:如何使用gdb调试coredump文件_第4张图片

如何使用gdb调试coredump文件_第5张图片

小结:

  • 如果程序崩溃产生不了coredump文件,则排查core file size的值 以及 磁盘空闲空间的大小
  • core file size的值为 unlimited : ulimit -c unlimited

gdb怎么调试coredump文件

如何使用gdb调试coredump文件_第6张图片

 g++ gdb_test.cpp -o mygdbtest -g   // 生成gdb

如何使用gdb调试coredump文件_第7张图片

 gdb mygdbtest core.22450    //  进入调试文件

如何使用gdb调试coredump文件_第8张图片

如何使用gdb调试coredump文件_第9张图片

1. bt:查看调用堆栈情况;

2. f 0 :选择要查看的第几行;

3. 找到错误 修复代码

你可能感兴趣的:(C/C++,linux,运维,服务器)