linux gdb 除錯
編譯除錯版本的檔案
/include -g
啟動gdb除錯
若有main
()有設定引數則可以在gdb下設定傳遞引數
set args ...
..gdb一些命令
1.run:執行整個程式
2.start:開始除錯
3.next
(n):逐條語句執行
4.step:逐條語句執行,並且嘗試進入函式內部,庫函式無法進去
5.quit:退出gdb除錯
6.break
(b) 行號: 設定斷電
1):b 10 在main
()函式的第10行設定斷點run的時候會開在第10行
2)b add
(函式名)
:在該函式的檔案設定斷點
3)b add.c:
6 在其他檔案(add.c)的第6行設定斷點.main也適用
4)list
(l):檢視main
( 5
)list + 檔名 +
:+ 行號 = 檢視與4
)一致 6
)info b: 檢視所有斷點資訊獲得斷點編號
7)del(d)
: 刪除對應編號(num)斷點
8)continue
(n):跳到下乙個斷點
7.print
(p)+ 變數名: 檢視變數的值,
8.print
(p)+ 函式名: 檢視函式的返回值型別和引數型別
9.print
(p)+ 自定義資料型別, 檢視內部變數和函式在當前狀態所獲得的結果
10.ptype 檢視變數的資料型別
11.可以在除錯過程中設定變數的值
例如:b main // 先給main 設定個斷點
run // 執行狀態卡在斷點
//設定引數的值
set agrc=
3 set ar**[1]
="2"
run // 在run 清除設定的狀態
12.display argc // 跟蹤變數,每執行一步列印會列印一次變數值可以跟蹤多個,刪除用undisplay + 編號
13.設定條件斷點:在某個迴圈內設定條件知道成立才退出
/*32: for(int = 0; i < 10; ++i)
*/b 32
if i ==
1//直到i==1才退出斷點32
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除錯總結
進入除錯 1 輸入gdb 檔名 2 輸入gdb file 檔名 l 顯示源 預設顯示main函式所在檔案的源 list 檔名 num 顯示指定檔案指定行附近的源 b breakpoint的簡寫,設定斷點。b 行號 給指定行新增斷點 b 函式名 給指定函式新增斷點 b 檔名 行號 給指定檔案指定行新增...
Linux gdb除錯總結
在windows作業系統下,我們的執行程式有兩個版本。debug開發除錯版本 得到的可執行檔案.exe檔案相對較大,其中包含除錯資訊。且不做任何優化,未開發人員提供強大的應用除錯能力 release發行版本 檔案相對較小,不包含除錯資訊,並進行了各種優化,以期達到 最小和速度最優。為使用者的使用提供...