Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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週)

第一階段:基礎指令

  1. GDB 基礎與指令
    • 學習常用指令
    • 設置中斷點
    • 查看變量與堆疊

第二階段:實戰練習

  1. 除錯簡單 C 程式
  2. 練習單步執行
  3. 查看記憶體與暫存器

進階路徑(2-4週)

深度除錯

  1. 進階除錯技巧
    • Watchpoints 應用
    • 條件中斷點
    • 自動化腳本

語言特定

  1. 特定語言除錯
    • Rust/Go 除錯
    • 理解語言特性

視覺化分析

  1. 視覺化與工具
    • 使用圖形化工具
    • 記憶體分析

專家路徑(持續學習)

系統級除錯

  1. QEMU + GDB 嵌入式除錯
  2. 核心態除錯
  3. 遠程除錯

性能分析

  1. 結合 Perf 工具
  2. 記憶體洩漏分析
  3. 性能瓶頸定位

💡 使用說明

快速查閱指令

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 維護狀態: ✅ 活躍更新 貢獻: 歡迎補充與修正