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 还有许多高级功能,如条件断点、监视点、线程调试等,可以根据需要进行深入学习。