1. 程式人生 > >gcc除錯segmentation fault的方法

gcc除錯segmentation fault的方法

  前一陣編了大概3500+lines的程式碼,一直執行穩定,結果今天出現了segmentation fault的錯誤,這可怎麼辦? 用gdb 一行一行調嗎?
  確實讓人頭疼,後來發現gdb功能強大,現分享解決方法:
  除錯方法如下:
   1. gcc 編譯的時候 -g
   2. 執行gdb filename

點選(此處)摺疊或開啟

  1. gdb> run arguments (cc1 will stop at the segmentation fault)
  2. gdb> where
  3. gdb> list
就可以顯示如下程式碼了:
(gdb) where
#0  0x0000000000400e67 in __arc_list_splice (prev=0x7ffff7ec7000, next=0xaa07a8) at arc.h:43
#1  0x0000000000400e93 in __arc_list_remove (head=0xaa07f8) at arc.h:50
#2  0x0000000000401297 in __arc_move (cache=0x608010, obj=0xaa07e0, state=0x0) at arc.c:104
#3  0x000000000040186c in __arc_destroy (cache=0x608010) at arc.c:231
#4  0x0000000000404497 in lfs_fini () at lfs_main.c:132
#5  0x000000000040455b in main (argc=2, argv=0x7fffffffe6d8) at lfs_main.c:157


閱讀(30) | 評論(0) | 轉發(0) | 給主人留下些什麼吧!~~ 評論熱議