gdb(GNU Debugger)是一個強大的源代碼級調試工具,用于在 Linux 系統上調試程序。以下是使用 gdb 調試程序的基本步驟:
首先,確保你的程序是用調試信息編譯的。通常,你需要在編譯時添加 -g 選項:
gcc -g -o myprogram myprogram.c
gdb使用 gdb 啟動你的程序:
gdb myprogram
在 gdb 提示符下,使用 break 命令設置斷點。你可以按函數名、行號或文件名和行號設置斷點:
break main
break myprogram.c:42
使用 run 命令啟動程序:
run
如果程序在斷點處停止,gdb 會顯示相關信息。
你可以使用 print 命令查看變量的值:
print variable_name
你也可以使用 info locals 和 info args 查看當前函數的局部變量和參數:
info locals
info args
使用 step 命令單步執行代碼:
step
使用 next 命令單步執行,但不進入函數內部:
next
使用 continue 命令繼續執行程序,直到下一個斷點或程序結束:
continue
使用 backtrace 命令查看當前的調用棧:
backtrace
你可以使用 set 命令修改變量的值:
set variable variable_name = new_value
gdb使用 quit 命令退出 gdb:
quit
以下是一個簡單的示例,展示了如何使用 gdb 調試一個 C 程序:
// myprogram.c
#include <stdio.h>
void foo() {
int x = 10;
printf("x = %d\n", x);
}
int main() {
foo();
return 0;
}
編譯程序:
gcc -g -o myprogram myprogram.c
啟動 gdb:
gdb myprogram
設置斷點并運行程序:
break foo
run
單步執行并查看變量:
step
print x
繼續執行:
continue
退出 gdb:
quit
通過這些基本步驟,你可以開始使用 gdb 調試你的 Linux 程序。gdb 還有許多高級功能,如條件斷點、監視點、線程調試等,可以根據需要進行深入學習。