在程式編譯時增加-g選項以支援gdb除錯
如:$ gcc -g example.c -o example.x
通過上述命令對example.c編譯之後,使用下列命令進入到gdb除錯:
$ gdb example.x
在gdb除錯中,常用的命令有以下幾個:
$ list 縮略為 l
列出程式原始碼,每次列出10行,按回車重複執行上一命令;
$ run 縮略為 r
程式開始執行,在r後可以加入程式啟動引數,程式執行到斷點處暫停;
$ continue 縮略為 c
程式繼續執行,到下一斷點處暫停;
單步除錯
$ step 縮略為s
$ next 縮略為 n
程式繼續執行到下一斷點;
$ break 縮略為 b
在程式某一位置設定斷點;
$ info break 縮略為 i b
檢視斷點資訊;
設定/檢視執行引數
$ set args ---/show args
載入執行中的程序進行除錯(attach to the running process to be debugged.):
$ gdb attatch pid
specifying source directories
$ dir dirname …
以十六進製制輸出記憶體塊資料
$ x/28hx ---
段錯誤除錯,core檔案樣例
通過ulimit命令檢視一下系統是否配置支援了dump core的功能。通過ulimit -c或ulimit -a,可以檢視core file大小的配置情況,如果為0,則表示系統關閉了dump core;可以通過ulimit -c unlimited來開啟。若發生了段錯誤,但沒有core dump,是由於系統禁止core檔案的生成。
$ gdb [exec file] [core file]
檢視堆疊資訊:
$ bt
ps:對於python程式在linux下可以使用pdb做除錯!
GDB常用除錯命令
呼叫gdb編譯需要在cc後面加 g引數再加 o root redhat home gdb 除錯檔案 啟動gdb gdb l 字母l 從第一行開始列出原始碼 gdb break n 在第n行處設定斷點 gdb break func 在函式func 的入口處設定斷點 gdb info break 檢視斷...
gdb常用除錯命令
將.c檔案程式設計成包含標準除錯資訊的檔案 命令 gcc g c o 1 啟動gdb除錯程式 兩種方式 a gdb filename b 啟動gdb後,使用file filename 2 list l 檢視程式 方便設定斷點 3 break b 函式名 在某函式入口處新增斷點 4 break 行號 ...
GDB 常用除錯命令
呼叫gdb編譯需要在cc後面加 g引數再加 o root redhat home gdb 除錯檔案 啟動gdb gdb l 字母l 從第一行開始列出原始碼 gdb break n 在第n行處設定斷點 gdb break func 在函式func 的入口處設定斷點 gdb info break 檢視斷...