GDB(GNU Debugger)是一个强大的调试工具,用于调试C、C++等语言编写的程序。它允许开发者查看程序的执行流程、变量的值、内存状态等,从而帮助定位和修复程序中的错误。
break
:设置断点。run
:启动程序。next
:单步执行,不进入函数内部。step
:单步执行,进入函数内部。continue
:继续执行程序直到下一个断点。print
:打印变量的值。backtrace
:查看调用栈。假设我们有一个简单的C程序example.c
:
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int main() {
int x = 5;
int y = 10;
int result = add(x, y);
printf("Result: %d\n", result);
return 0;
}
编译并调试这个程序:
gcc -g -o example example.c # 编译时加入-g选项以包含调试信息
gdb ./example
在GDB中:
(gdb) break main # 在main函数处设置断点
(gdb) run # 运行程序
(gdb) next # 单步执行
(gdb) print x # 打印变量x的值
(gdb) step # 进入add函数
(gdb) print a # 打印参数a的值
(gdb) continue # 继续执行直到下一个断点或程序结束
问题1:无法进入断点
-g
选项,导致没有生成调试信息。-g
选项。问题2:变量值显示不正确
-O0
(无优化)编译选项重新编译程序。通过以上步骤和命令,你可以有效地使用GDB进行程序调试。希望这个教程对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云