当前位置: 代码迷 >> 综合 >> 调试应用程序之使用core dump
  详细解决方案

调试应用程序之使用core dump

热度:2   发布时间:2023-12-20 23:36:36.0

    在应用程序中,经常会导致段错误,segment default,我们可以使用二分法一个个打印,或者用gdb 一步步的step进去查看打印,但是这在很大的程序中显得效率很低,这时我们可以使用core dump 来调试查看出差的地方。

      core就是核心的意思,这里是内存,dump是倒垃圾的意思,就是将程序中的内存出错的像倒垃圾一样呈现出来。
下面简单的显示一下core dump的用法

产生core文件。一般这个core文件都是命名为core 或者core.xxx(xxx就是产生错误的进程号)

设置core文件为没有限制大小
ulimit -c unlimited  (如果要不产生core文件可用ulimit -c 0)


应用程序编译时加上-g选项

运行可执行程序
./core_test.o

ls 可看见产生core文件

core  core_test.c  core_test.o


开始调试:
gdb ./core_test.o core


可看见出错的地方。

Program terminated with signal 11, Segmentation fault.
#0  0x080483c7 in core_test () at core_test.c:6
这是个错误的赋值---数组越界


下面是测试文件




  相关解决方案