gcc -g main.c //在目標檔案加入源**的資訊
gdb a.out
(gdb) start //開始除錯
(gdb) n //一條一條執行
(gdb) step/s //執行下一條,如果函式進入函式
(gdb) backtrace/bt //檢視函式呼叫棧幀
(gdb) info/i locals //檢視當前棧幀區域性變數
(gdb) frame/f //選擇棧幀,再檢視區域性變數
(gdb) print/p //列印變數的值
(gdb) finish //執行到當前函式返回
(gdb) set var sum=0 //修改變數值
(gdb) list/l 行號或函式名 //列出原始碼
(gdb) display/undisplay sum //每次停下顯示變數的值/取消跟蹤
(gdb) break/b 行號或函式名 //設定斷點
(gdb) continue/c //連續執行
(gdb) info/i breakpoints //檢視已經設定的斷點
(gdb) delete breakpoints 2 //刪除某個斷點
(gdb) disable/enable breakpoints 3 //禁用/啟用某個斷點
(gdb) break 9 if sum != 0 //滿足條件才啟用斷點
(gdb) run/r //重新從程式開頭連續執行
(gdb) watch input[4] //設定觀察點
(gdb) info/i watchpoints //檢視設定的觀察點
(gdb) x/7b input //列印儲存器內容,b--每個位元組一組,7--7組
(gdb) disassemble //反彙編當前函式或指定函式
(gdb) si // 一條指令一條指令除錯 而 s 是一行一行**
(gdb) info registers // 顯示所有暫存器的當前值
(gdb) x/20 $esp //檢視記憶體中開始的20個數
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除錯常用命令
gdb list 1 從第一行開始列出原始碼 一次列出10行,如果要從11行繼續列出直接輸入list或l 命令簡寫 gdb l 搜尋 func name所在位置。gdb start 開始執行程式 gdb next 簡寫n 單條執行指令 直接回車重複執行上一條命令 n gdb step 簡寫s 執行下...
gdb除錯常用命令
在編譯時要加上 g選項,生成的可執行檔案才能用gdb進行原始碼級除錯。使用gdb執行生成的檔案。help 可以檢視命令類別 list 命令從第一行開始列出源 一次只會顯示10行,回車可繼續列出下面的 quit 退出 start 開始執行 n next 控制語句一條一條執行 s step 單步執行 b...