gdb簡單使用
編譯程式時,使用gcc -ggdb3 -o test test.c可以最大限度的包含除錯資訊。
gdb test 然後會出現一串提示,無非就是寫授權介紹類的.然後就是提示符
(gdb)
(gdb)run 設定斷點後,輸入run直接執行,並且在斷點處停止
(gdb)break main 在main函式出設定了斷點
(gdb)break 行號 在某一行設定斷點
(gdb)step 也可簡寫 s 遇到函式就會進入
(gdb)next 也可簡寫 n 遇到函式時不會進入
(gdb)print 要列印的值或表示式 直接列印某個變數的值或者表示式的值
(gdb)print 變數=表示式
還可以用於賦值
(gdb)print 開始表示式@連續列印空間的大小 還可以列印出記憶體的某個部分開始的連續值
(gdb)display 要顯示的值或表示式 直接列印某個變數的值或者表示式的值
--------display命令會被gdb記憶,如果列印乙個值,後續遇到該值均會被列印出來
(gdb)set 變數名=表示式 可以修改變數的值
(gdb)cont [n] 在遇到斷點後,繼續執行,後面可以跟次數n,不跟預設為一次,在迴圈中作用較大
臨時斷點會在呼叫一次後自動刪除
(gdb)tbreak 行號
(gdb)tbreak 函式
(gdb)enable 斷點編號 可以使暫時失效的斷點恢復
(gdb)disable 斷點編號 將所設定的斷點失效
(gdb)delete 斷點編號 直接刪除斷點
(gdb)clear 斷點所在行號 直接刪除所在行斷點
delete和clear不同之處是delete跟的是斷點號,clear跟的是行號
GDB符號偵錯程式 二
gdb watch 表示式設定好檢視的表示式,則可以使程式在表示式成立時終止執行 eg gdb watch counter 15 gdb breaktrace gdb bt 該命令列印當前停住地方函式呼叫棧的所有資訊.gdb breaktrace gdb bt n是乙個正整數,表示可以列印棧頂上的n...
GDB偵錯程式
偵錯程式gdb 一 啟動和退出gdb gdb除錯的物件是可執行檔案,而不是程式的源 如果要使乙個可執行檔案可以被gdb除錯,那麼在使用編譯器gcc編譯程式時需要加入 g選項。gdb除錯乙個程式的命令格式是 gdb 程式檔名 也可以在linux提示符下,直接輸入gdb,然後使用file命令裝入要除錯的...
gdb偵錯程式
在使用gdb偵錯程式之前,必須在編譯程式時加上 g選項 功能 顯示上次內容之前或之後的10行內容,首次使用顯示main 函式之前或之後的10行內容 命令 list 簡稱 l 功能 顯示引數行之前和之後的10行內容.命令 list line number 簡稱 l 10 功能 顯示原始檔從一行到另一行...