GCC与GDB是调试程序的经典工具组合。首先需使用-g选项编译程序以嵌入调试信息。随后启动GDB,通过设置断点控制程序暂停,运行后利用print、backtrace等命令检查变量值与调用栈。调试中可动态修改变量进行测试,完成后退出。GDB还具备条件断点等高级功能,可通过手册进一步学习。
GCC程序调试指南:快速掌握调试技巧
作者:技术拾光
时间:2026-05-16
浏览:392
文章目录
如何使用GCC调试程序

调试是程序员将程序从“能运行”提升到“正确运行”的关键步骤。GCC编译器与GDB调试器的组合,是完成这一任务的经典工具链。本文将梳理使用这套工具进行程序调试的标准操作流程。
第一步:编译时注入调试信息
要让调试器能够理解你的代码,首先需要在编译阶段指示编译器保留调试符号。通过使用 -g 编译选项,可以将变量名、源代码行号等关键信息嵌入生成的可执行文件中,这是后续所有调试工作的基础。
gcc -g -o myprogram myprogram.c
第二步:启动调试器GDB
程序编译完成后,即可启动GNU调试器(GDB)。在终端中输入以下命令,可以加载并准备调试你的程序。
gdb myprogram
第三步:设置断点以控制程序执行
调试的核心在于对程序执行流程的控制。在GDB中,使用 break 命令(可简写为 b)设置断点,程序运行到指定位置时会自动暂停,便于观察状态。断点可以设置在函数入口,也可以精确到具体的代码行。
break main
# 或者
break myprogram.c:42
第四步:运行程序
准备工作完成后,输入 run 命令(可简写为 r)启动程序执行。当程序遇到已设置的断点时,会自动暂停并等待后续指令。
run
第五步:检查程序运行状态
程序暂停后,是分析问题的主要时机。GDB提供了一系列强大的命令来检查程序状态:
print(p):查看变量的当前值,这是最常用的操作之一。backtrace(bt):显示函数调用栈,帮助理解程序的执行路径。list(l):显示当前位置附近的源代码,便于查看上下文。next(n):单步执行,但将函数调用作为一个整体跳过。step(s):单步执行,遇到函数调用时会进入函数内部。continue(c):让程序继续执行,直到遇到下一个断点。
第六步:动态修改变量值
调试不仅限于观察,有时需要主动改变变量值以测试不同场景。除了使用 print 查看变量,还可以使用 set 命令在运行时直接修改变量的值,这避免了反复修改代码和重新编译的过程。
print variable_name
set variable variable_name = new_value
第七步:退出GDB环境
调试任务结束后,输入 quit 命令即可退出GDB调试环境。
quit
以上是使用GCC和GDB进行程序调试的一套基础且完整的操作流程。需要指出的是,GDB的功能远不止于此,它还支持条件断点、观察点、多线程调试等高级特性。如需深入了解,可以随时查阅GDB手册(在终端中运行 man gdb),以掌握更多调试技巧。
实用工具推荐
电子包浆
使用 ›绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
图片压缩
使用 ›选择画质和输出格式,预览压缩前后的大小。
相关文章