Linux學習筆記 gdb除錯的補充說明

2021-08-26 05:56:42 字數 900 閱讀 2327

gdb除錯的補充說明

程式執行截圖如下:

原始碼如下:

#include void test(int i)

printf("the value is %d\n",i);

test(--i);

}int main()

當程式編譯時帶‐g選項時,程式才可以被除錯實際上,當以‐g選項編譯時,編譯器將"除錯資訊"加在了目標程式裡,因此,目標程式的體積將顯著變大

比較輸出的目標程式的體積:

g++ ‐g main.cpp ‐o helloworld

g++ main.cpp ‐o helloworld

體積如下所屬:

判斷乙個程式是否帶有「除錯資訊」

一:objdump ‐h helloworld

有debug資訊就可以除錯

如下:

gdb的使用場合

適用的場合:

‐ 單元測試(較短的**,功能單純的函式)

‐ 段錯誤的定位

不太適用的場合:

‐ 大型程式,尤其是程式中使用了多執行緒

‐ 單步除錯的時候問題無法復現,只能在正常執行的時候復現

(使用列印除錯)

gdb除錯學習筆記

監視點 watch m 25 只有遍歷所在的記憶體值發生變化,且滿足條件是中斷 列印變數 print j 幫助文件 help breakpoint 產看斷點幫助文件 編譯時 g選項 如果不加同樣能夠除錯,不過不可以檢視變數和行號 注意是編譯過程使用,在鏈結過程沒沒有用 tui介面 ctrl x a ...

Linux下gdb除錯學習

以test.cpp為例 include include int main std cout下面是gcc g 常用編譯選項,我們的可執行檔案要能夠被gdb除錯,必須在編譯時加上除錯資訊,也即是加上 g選項 完整命令如下 g g test.cpp o test 執行gdb test 進入gdb除錯 種種...

linux環境gdb除錯工具學習筆記

一 gdb啟動 1.1 gdb啟動命令,輸入gdb之後即啟動gdb除錯工具,gdb 是提示符 1.2 gdb啟動除錯工具並顯示源 視窗,linux終端輸入 gdb tui 二 linux編譯程式 2.1 linux終端輸入 gcc filenamesrc o filenameo g 2.2 開始除錯...