Linux GDB調試段錯誤方法(Segmentation fault)

暫時只簡單寫一下步驟:

1,gcc -g test.c -o test                       -- 編譯時需要加入 -g參數

 

2,ulimit -c unlimited     設置core文件無限大小;我的開發環境不設置這個,則無core文件生成

 

3,運行./test 生成core文件(會在程序運行的目錄下生成)     --有些linux系統是生成 core.xxx    (xxx就是你執行的程序的pid)

 

4,調試 gdb ./test core  

 

5,使用 bt 指令查看具體段錯誤位置

(gdb) bt
#0  malloc_consolidate (av=av@entry=0xb7639420 <main_arena>) at malloc.c:4159
#1  0xb7500a09 in _int_malloc (av=av@entry=0xb7639420 <main_arena>, bytes=bytes@entry=65548)
    at malloc.c:3425
#2  0xb75029d8 in __GI___libc_malloc (bytes=65548) at malloc.c:2893
#3  0x0804c39d in ?? ()
#4  0x08052cb3 in ?? ()
#5  0x08052998 in ?? ()
#6  0x0805dc75 in ?? ()
#7  0x0805d54c in ?? ()
#8  0x0805d402 in ?? ()
#9  0x08059ac6 in ?? ()
#10 0x080578b5 in ?? ()
#11 0x08057d81 in ?? ()
#12 0x0805860c in ?? ()
#13 0x0804a689 in ?? ()
#14 0xb74a5af3 in __libc_start_main (main=0x804a5dd, argc=1, argv=0xbfa92a34, init=0x8062b50, 
    fini=0x8062bc0, rtld_fini=0xb77d9300 <_dl_fini>, stack_end=0xbfa92a2c) at libc-start.c:287
#15 0x0804a501 in ?? ()

6,frame 4 (對應的數字) 查看對應具體某個位置相關信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章