详解coredump

1.什么是coredump??

在程序运行过程中出bug而异常退出,在一些情况下会生成一个coredump文件。
包含着内存信息,寄存器信息,堆栈指针

(1)查看core文件是否打开:

ulimit -c

我的刚开始是0,所以即使显示段错误也不生成core文件

(2)coredump文件位置

提示 Segmentation fault,但在当前目录下却没有找到 coredump 文件,可以通过下面的命令看到 core 文件的存在位置:
 

cat /proc/sys/kernel/core_pattern 

默认值是core (当前目录)

(3)使用gdb不与二进制文件一起使用可以吗?

不能,因为coredump文件没有符号表不能进行调试

(如果没有符号表,输入l的时候会显示)

没有符号表被读取。请使用 "file" 命令。

(4)如何使用

gdb 1out core

结果

Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00000000004004e8 in main () at 1.cpp:5
5		*a = b;
发布了81 篇原创文章 · 获赞 4 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/m0_37313888/article/details/105168272