在 Debian 系統中,使用 GCC 調試 C/C++ 程序的技巧主要包括以下幾點:
安裝必要的工具: 確保已經安裝了 GCC 和 GDB。如果沒有安裝,可以使用以下命令安裝:
sudo apt-get update
sudo apt-get install build-essential gdb
編譯時添加調試信息:
在編譯時添加 -g
選項以包含調試信息。這將在生成的二進制文件中包含源代碼的符號信息,便于調試。例如:
gcc -g test.c -o test
使用 GDB 進行調試: 使用 GDB 打開生成的二進制文件,并進行調試操作。以下是一些常用的 GDB 命令:
list
或 l
:顯示源代碼。break
或 b
:設置斷點。例如,break main
會在 main
函數開始處設置斷點。run
或 r
:運行程序。next
或 n
:執行下一行代碼,但不進入函數。step
或 s
:執行下一行代碼,如果是函數調用,則進入函數。continue
或 c
:從當前斷點繼續執行。print
或 p
:打印變量值。例如,print a
會顯示變量 a
的值。backtrace
或 bt
:顯示當前調用棧。quit
或 q
:退出 GDB。使用調試宏: 在編譯時,可以使用一些特殊的宏來打印調試信息。例如:
#include <stdio.h>
#define dprint(expr) printf("<main>%s = %d
", #expr, expr);
int main(void) { int x = 3; int y = 5; dprint(x / y); dprint(x + y); dprint(x * y); return 0; }
編譯并運行上述代碼,會輸出類似以下內容:
#define dprint(expr) printf("<main>%s = %d ", #expr, expr);
:將宏中的內容轉換成字符串。#define debugc(expr) printf("<char> %s = %c ", #expr, expr);
:打印字符。#define debugf(expr) printf("<float> %s = %f ", #expr, expr);
:打印浮點數。#define debugx(expr) printf("<int> %s = 0x%x ", #expr, expr);
:按照 16 進制打印整數。通過這些技巧,可以更高效地在 Debian 系統中使用 GCC 進行調試。希望這些信息對你有所幫助!