Linux 下程序崩潰。先要生成Core文件方可調試(這裏Test爲被調試程序) 函數
1.查看Core文件(至關於Windows下的dump)大小,若是爲0,則不會生成core文件 ui
ulimit -c 查看core文件大小 spa
ulimit -c filesize 設置大小爲filesize 調試
ulimit -c unlimited 設置core大小爲無限制 內存
2.啓動被調試程序 it
進入到被調試程序目錄,輸入gdb ./Test 回車 變量
若是被調試程序有參數需設置,則 set args xxxx 回車 file
也可 r arg1 arg2 程序
3.設置(刪除,使能,失能)斷點 im
若是是C++程序,則
b ClassName::Fun 即給類名爲ClassName的成員函數Fun下斷點
也可
b xxx.cpp:LineNum 即給xxx.cpp的LineNum 行下斷點
下好斷點後,可查看斷點
info b 或者 info break
刪除斷點
delete number(斷點編號) 或者delete all
enable b number (使能斷點)
disable b number (失能斷點)
4.運行程序 r
5.單步運行(步過,不進入函數內部)
n
6.單步步入(步入,進入函數內部)
s
7.運行到下個斷點
c (contune)
8. 查看變量
p var(變量名)或者p addr (內存地址)
9.列出源程序
list 無參數
顯示上次內容以前或以後的10行內容
list 1個參數,list <line-number>
顯示參數行 line-number以前和以後的10行內容
list 2個參數,list<line1,line2>
說明:line1爲顯示的起始行,line2爲結束行
再次回車後,即執行list命令,顯示內容後面的10行命令
最後:
quit 退出gdb