使用gdb是需要在編譯是指定-g
命令,在可執行檔案中新增符號資訊。
可以使用gdb
gdb executable-file
等啟動gdb除錯。
退出時,命令列輸入quit
、q
或者ctrl + d。
在gdb命令介面中可以輸入help
獲得幫助資訊。
使用backtrace
where
bt
可檢視當前執行緒呼叫堆疊。
print variable-name
使用該指令可以顯示變數的值。
info stack
檢視呼叫堆疊
info thread
檢視執行緒堆疊
之前只是知道有valgrind等輔助檢測記憶體洩露的工具,但不太清楚還有這個名字。
最初的來由是因為c/c++都存在相同的記憶體管理問題(比如記憶體洩露、緩衝區溢位、記憶體管理錯誤等bug),這就催生了記憶體偵錯程式的出現。
常用的記憶體偵錯程式有valgrind、purify、insure++、boundschecker。
具體可以參考點評五款用於 linux 程式設計的記憶體偵錯程式。
直接使用gdb命令列總是枯燥無味的。正確的用法是結合實際情況分析並學習相關除錯技巧。
可以在linux下使用ddd的ui介面除錯,跟vs的偵錯程式有點類似。
本文簡要整理了gdb支援的除錯命令,作為後續參考。
更詳細的資料建議參考gdb manual。
GDB技巧整理
整理常用的gdb技巧。常用的gdb命令.直接執行 gdb args prog arg1 arg2 執行gdb後使用run命令 gdb prog run arg1 arg2 attach到已執行的程式 gdb pid ptype用於顯示symbol的型別,示例原始碼為 struct abc int m...
gdb 命令整理
最近除錯nginx原始碼,使用到了gdb,為方便以後除錯使用。整理了一些常用命令。啟動專案並斷點 start 打臨時斷點 tb打斷點 b根據 行位置設定斷點 根據函式名設定斷點 b func name 根據執行時的位址設定斷點 b 0x5859c0 檢視斷點列表 info break 檢視函式堆疊 ...
CG簡要情況整理
主要學術 acm siggraph www.siggraph.com gdc vedio game developers www.gdconf.com 基本內容 不介紹opengl固定流水線和shader,主要介紹cg涉及到的幾個模組總覽 一 幾何建模 如何表達三維物體 三角麵片 比較好表達,因為三...