Linux gdb除錯總結

2021-09-10 01:48:14 字數 1315 閱讀 2238

進入除錯:

(1)輸入gdb 《檔名》

(2)輸入gdb ----> file 《檔名》

l:顯示源**(預設顯示main函式所在檔案的源**)

list 《檔名》:num 顯示指定檔案指定行附近的源**

bbreakpoint的簡寫,設定斷點。

b 《行號》 給指定行新增斷點

b 《函式名》 給指定函式新增斷點

b 《檔名 行號》 給指定檔案指定行新增斷點

b 《行號 條件》 新增乙個條件斷點

info b顯示斷點資訊

d bpnum:刪除斷點 (bpnum:斷點號)

disable bpnum將斷點設定為無效

enable bpnum將斷點設定為有效的

執行過程控制:

r啟動除錯,run的簡寫,執行被除錯的程式。(gdb) r

如果此前沒有下過斷點,則執行完整個程式;如果有斷點,則程式暫停在第乙個可用斷點處。

ns進入函式中執行

finish退出函式執行

cq退出除錯

檢視變數:

p《變數名稱》 ---> print的簡寫,顯示指定變數(臨時變數或全域性變數)的值。

p valname :變數的值

p arr :顯示陣列所有的元素

p *ptrarr@num :通過指向陣列的指標顯示陣列所有元素

p struct_val  : 顯示結構體變數中所有的成員值

p struct_val. : 顯示結構體變數中某個成員的值

p ptr_struct->a :通過指標顯示結構體變數某個成員的值

p funactionname(a,b) :將函式測試執行

bt顯示函式呼叫棧 函式呼叫流程

Linux gdb除錯總結

在windows作業系統下,我們的執行程式有兩個版本。debug開發除錯版本 得到的可執行檔案.exe檔案相對較大,其中包含除錯資訊。且不做任何優化,未開發人員提供強大的應用除錯能力 release發行版本 檔案相對較小,不包含除錯資訊,並進行了各種優化,以期達到 最小和速度最優。為使用者的使用提供...

linux gdb除錯彙編

1 除錯hello,要求編譯時指定了 gstabs選項 2 執行hello deepfuture lx deepfuture lx desktop private mytest hello hello,world abcd 3 用gdb開啟hello deepfuture lx deepfuture...

Linux gdb 除錯模式

linux gdb 除錯 編譯除錯版本的檔案 include g 啟動gdb除錯 若有main 有設定引數則可以在gdb下設定傳遞引數 set args gdb一些命令 1.run 執行整個程式 2.start 開始除錯 3.next n 逐條語句執行 4.step 逐條語句執行,並且嘗試進入函式內...