先决条件
1.安装apport(automatically generate crash reports for debugging)
2.修改/etc/security/limits.conf文件,使允许core dump,或者用ulimit -c unlimited设置core dump文件的大小为unlimited(临时方案)
3.C/C++的编译开关-g(产生调试符号)
- #include
-
- int main(){
- char* p=NULL;
- *p=123;
- return 0;
- }
Segmentation fault (core dumped)表示成功,core文件在/var/crash或者在当前目录
段错误 (core dumped)
果然在当前目录
core.3052
gdb一下
######程序是由于段错误退出的
Program terminated with signal 11, Segmentation fault.
这个简单的例子我们可以发现是空指针引发的段错误