做c的经常出现的一个错误就是段错误(core dumped),对于那种代码量不大、单线程的程序通过几个printf函数便可逐渐定位到段错误的地方,但是对于稍微复杂些的程序,尤其是多线程的程序就不好这么定位了。
可以利用core文件来定位,首先core文件是进程崩溃时代码映像。默认情况下,段错误是不会产生core文件的,因为core文件的大小被默认设为0,使用命令ulimit -c 可以查看当前目录下core文件的大小。使用命令ulimit -c 1000将core文件大小设为1000B
也可以设为无限制 ulimit -c unlimited。然后gdb 可执行文件名 core文件名,例如gdb testcore core.6138 ,就会产生段错误的地方在哪了。
阅读(3089) | 评论(0) | 转发(0) |