1、./test 程序运行错误
Segmentation fault (core dumped)
通常都是指针错误引起的。但这不像编译错误一样会提示到文件一行,而是没有任何信息。一种办法是用gdb的step, 一步一步寻找。但要step一个上万行的代码让人难以想象。 我们还有更好的办法,这就是core file。
2、gdb core 调试
如果想让系统在信号中断造成的错误时产生core文件, 我们需要在shell中按如下设置:
设置core大小为无限 ulimit -c unlimited
设置文件大小为无限 ulimit unlimited
发生core dump之后,用gdb进行查看core文件的内容, 以定位文件中引发core dump的行:
gdb [exec file] [core file]
如: gdb ./test test.core 在进入gdb后, 用bt命令查看backtrace以检查发生程序运行到哪里,来定位core dump的文件->行。
另外需要注意的是,如果你的机器上跑很多的应用,你生成的core又不知道是哪个应用产生的,你可以通过下列命令进行查看:file core