第一步:vi /etc/profile
添加 ulimit -c unlimited
这样就打开了coredump写日志开关。查看是否成功用 ulimit -a
第二步:reboot 重启电脑
第三步:编译一个测试文件 test.c
#include <stdio.h>
int main(void)
{
int *p = NULL;
*p = 0x123;
return 0;
}
编译gcc -g test.c -o test.out
第四步:运行test.out,查看同目录是否生成core文件
第五步:gdb test.out core
这样可以调试coredump文件,若要查看堆栈,接着敲 bt (即backtrace)即可
注意:调试大型文件一定要设置 -g -O0, 否则只设置-g的话默认会使用-O2优化,bt后会显示 <optimized out>导致无法查看正确的堆栈