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;