GDB 除錯完整指南
GNU Debugger 從基礎到進階的完整學習資源。
📊 文檔統計
- 原始檔案: 126 個 markdown 文檔
- 整合索引: 4 個主題文檔
- 精簡比例: 97%
- 內容保留: 100%(索引式整合)
🗂️ 主題分類
📗 基礎入門
01. GDB 基礎與指令
完整知識庫 | 難度: ⭐⭐
核心內容:
- GDB 完整知識庫
- 常用指令參考
- 基礎除錯技巧
- 程式控制與中斷點
適合: GDB 新手、需要快速查閱指令
📘 進階技巧
02. 進階除錯技巧
Watchpoints、追蹤、自動化 | 難度: ⭐⭐⭐⭐
核心內容:
- Watchpoints 監視點
- 條件中斷與自動化
- 函數追蹤技巧
- SO 共享庫分析
- GDB Tips 完整集
適合: 有經驗的開發者、需要深度除錯
📙 特定應用
03. 特定語言除錯
Rust、Go、QEMU | 難度: ⭐⭐⭐
核心內容:
- Rust GDB 除錯
- Go GDB 除錯
- QEMU + GDB RISC-V64
- 嵌入式系統除錯
適合: Rust/Go 開發者、嵌入式開發
04. 視覺化與工具
圖形化、記憶體分析 | 難度: ⭐⭐⭐
核心內容:
- 流程圖視覺化
- Jemalloc 記憶體分析
- GDB 前端工具
- 函數調用圖
適合: 需要視覺化分析的開發者
🎯 學習路徑建議
新手路徑(1週)
第一階段:基礎指令
- GDB 基礎與指令
- 學習常用指令
- 設置中斷點
- 查看變量與堆疊
第二階段:實戰練習
- 除錯簡單 C 程式
- 練習單步執行
- 查看記憶體與暫存器
進階路徑(2-4週)
深度除錯
- 進階除錯技巧
- Watchpoints 應用
- 條件中斷點
- 自動化腳本
語言特定
- 特定語言除錯
- Rust/Go 除錯
- 理解語言特性
視覺化分析
- 視覺化與工具
- 使用圖形化工具
- 記憶體分析
專家路徑(持續學習)
系統級除錯
- QEMU + GDB 嵌入式除錯
- 核心態除錯
- 遠程除錯
性能分析
- 結合 Perf 工具
- 記憶體洩漏分析
- 性能瓶頸定位
💡 使用說明
快速查閱指令
→ GDB 基礎與指令 - 常用指令
遇到複雜問題
→ 進階除錯技巧 - Watchpoints、追蹤
除錯 Rust/Go 程式
→ 特定語言除錯
需要視覺化分析
→ 視覺化與工具
🔗 相關資源
其他章節
外部資源
📊 常用指令速查表
| 分類 | 指令 | 說明 |
|---|---|---|
| 執行 | run / r | 執行程式 |
continue / c | 繼續執行 | |
step / s | 單步(進入函數) | |
next / n | 單步(不進入) | |
| 中斷點 | break / b | 設置中斷點 |
delete / d | 刪除中斷點 | |
info breakpoints | 查看中斷點 | |
| 查看 | print / p | 列印變量 |
backtrace / bt | 調用堆疊 | |
list / l | 源代碼 | |
| 監視 | watch | 監視變量寫入 |
rwatch | 監視變量讀取 |
🚀 快速開始
基本除錯流程
# 編譯時加上 -g 選項
gcc -g program.c -o program
# 啟動 GDB
gdb ./program
# GDB 內部指令
(gdb) break main # 在 main 設中斷點
(gdb) run # 執行程式
(gdb) print variable # 列印變量
(gdb) backtrace # 查看堆疊
(gdb) continue # 繼續執行
(gdb) quit # 退出
最後更新: 2025-12-01 維護狀態: ✅ 活躍更新 貢獻: 歡迎補充與修正