debug(1)coredump
1.pre
测试程序:创建两个指针A B,A分配地址,B一个不分配地址,当出现特定数字后,将其写在B上,就会导致段错误,程序崩溃。
coredump(核心转储): 是指程序在异常终止(如崩溃)时,操作系统将程序当时的内存状态、寄存器信息、堆栈数据等关键信息保存到一个文件中的过程或结果文件。可以用gdb进行调试定位崩溃原因,生成文件名通常为core, 或者名字带core
2.coredump的打开
如下图,出现了segmentation fault, 但是coredump并未打开, ulimit命令可以判断是否启动coredump以及大小
如图可以看到,ulimit -c可以看到coredump指定大小,我们可以改成无限制
3.core生成的位置
core并不一定生成在程序报错的位置,可以通过以下目录查看
4.debug
gdb 可执行程序 core
debug信息如下,它并不会完整执行,会直接到程序崩溃的地方,相比于用vmlinux,可以直接进到崩溃的地方。