- 調試與發布版本的區別
調試版本(debug)和發布版本(release)是軟件開發中常見的兩種編譯方式。調試版本包含調試信息,幫助開發者查找和修復代碼中的錯誤。發布版本則優化性能,去除調試信息,適用于最終用戶。
- gcc 的默認行為
gcc 的默認行為是生成優化級別為 -O0 的調試版本二進制文件,包含調試符號,方便開發者使用調試器進行調試。
- gdb 的基礎操作
3.1 啟動和退出
啟動 gdb 使用 gdb 程序名 命令,退出 gdb 使用 quit 或 q 命令。
3.2 顯示代碼
使用 list 或 l 命令加行號,可以顯示指定行號的代碼。
3.3 開始運行代碼和設置斷點
使用 run 或 r 命令開始運行代碼,使用 break 或 b 加行號設置斷點。
3.4 設置函數斷點和文件行號斷點
使用 break 或 b 加函數名設置函數斷點,使用 break 或 b 加文件名和行號設置文件行號斷點。
3.5 查看斷點信息
使用 info breakpoints 或 info b 命令查看已設置的斷點信息。
3.6 刪除斷點
使用 delete 或 d 加斷點編號刪除指定斷點。
3.7 禁用和啟用斷點
使用 disable 加斷點編號禁用斷點,使用 enable 加斷點編號啟用斷點。
3.8 逐過程和逐語句調試
使用 next 或 n 逐過程調試,使用 step 或 s 逐語句調試。
3.9 顯示和取消顯示變量
使用 display 加變量名或地址持續顯示變量,使用 undisplay 加變量名或地址取消持續顯示。
3.10 跳轉到下一個斷點
使用 continue 或 c 命令從當前斷點跳轉到下一個斷點。
3.11 運行到函數結束
使用 finish 命令運行當前函數到結束。
3.12 跳轉到指定行
使用 until 或 u 加行號命令跳轉到指定行。
3.13 修改變量值
使用 set var 加變量名和值命令在不改變代碼的情況下修改變量值。
使用 backtrace 或 bt 命令查看當前的調用堆棧。