一、在当前文件夹下生成指定二进制文件的core文件
查看允许core文件空间大小:
ulimit -c
修改core文件空间为无限大:
ulimit -c unlimited
让core文件生成在当前目录下:
sudo bash -c 'echo core.%e.%p > /proc/sys/kernel/core_pattern'
再执行一次二进制就会在当前文件下生成core文件
二、GDB调试过程
1. 增加-g选项重新编译二进制
g++ -g test.cpp -o test
2.根据二进制和core文件进入gdb
gdb core.test.2900 test
比较简单的情况下可能直接就显示fault的位置:
还可以用where去做查询: