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 開始除錯...