利用 core 文件快速定位“segment fault”的 bug 位置

为什么要这么做


 

  最近用递归比较多,虽然写起来舒服,但是 BUG 不好改,出错的一般都是 segment fault (core dump) 。这个错误很难定位是哪错了,但是我发现了一种很好的办法去解决这种问题。

  由于每次发生段错误时,系统会产生 .core 文件记录发生的位置,所以我们在 gdb 调试时候把它带上就知道导致段错误的位置在哪、出错的数据是多少了。

  

 

具体步骤


 

第一步

  我的是 Ubuntu 系统,不像 Redhat 可以直接产生 core 文件,所以要先输入 ulimit -c unlimited 打开生成 core 文件的选项。举个例子,如下:

 

 

 

第二步

  在编译时加入 -g 选项,这样才能利用gdb进行调试。    

 

 

第三步

  利用 gdb 与 core 文件进行段错误定位

 

  参考来源:博客

posted @ 2018-02-03 11:39  bw98  阅读(526)  评论(0编辑  收藏  举报