在C语言开发过程中,程序出现bug是常有的事。如何快速定位并修复错误?这时候就需要用到强大的调试工具——GDB(GNU Debugger)。本教程将手把手教你从零开始使用C语言GDB调试器使用,即使是编程小白也能轻松上手!

GDB 是 GNU 项目提供的开源调试器,广泛用于 C、C++ 等语言的程序调试。通过 GDB,你可以:
在 Linux 或 macOS 系统中,通常已预装 GDB。若未安装,可使用以下命令安装:
# Ubuntu/Debiansudo apt-get install gdb# CentOS/RHELsudo yum install gdb# macOS(需先安装 Xcode 命令行工具)brew install gdb
编写一个简单的 C 程序用于调试,保存为 hello.c:
#include <stdio.h>int main() { int a = 10; int b = 0; int result; printf("a = %d, b = %d\n", a, b); // 这里会导致除零错误! result = a / b; printf("result = %d\n", result); return 0;}编译时需加上 -g 参数,以包含调试信息:
gcc -g -o hello hello.c
在终端输入以下命令启动 GDB 并加载可执行文件:
gdb ./hello
成功后你会看到类似以下提示符:
(gdb)
以下是几个核心的 GDB命令详解,帮助你高效调试:
run 或 r:运行程序。break [行号/函数名] 或 b:设置断点。例如:b main 或 b 9。next 或 n:单步执行(不进入函数内部)。step 或 s:单步执行(会进入函数内部)。print [变量名] 或 p:打印变量值。例如:p a。continue 或 c:继续执行直到下一个断点。quit 或 q:退出 GDB。我们来调试前面的除零错误程序:
(gdb) break mainBreakpoint 1 at 0x1179: file hello.c, line 4.(gdb) runStarting program: /home/user/hello Breakpoint 1, main () at hello.c:44 int a = 10;(gdb) next5 int b = 0;(gdb) next7 printf("a = %d, b = %d\n", a, b);(gdb) print b$1 = 0(gdb) continueContinuing.a = 10, b = 0Program received signal SIGFPE, Arithmetic exception.0x0000555555555195 in main () at hello.c:1111 result = a / b;可以看到,GDB 在第 11 行捕获了算术异常(除零),并显示了出错位置。这就是 C语言调试技巧 的核心价值——精准定位错误!
list(或 l)命令查看源代码上下文。info threads 查看线程信息。gdb ./program core 分析崩溃现场。通过本教程,你已经掌握了 C语言GDB调试器使用 的基本流程和核心命令。GDB 虽然基于命令行,但功能极其强大,是每位 C/C++ 开发者必备的技能。多加练习,你将能快速解决各种程序 bug,提升开发效率!
记住,调试不是“找错”,而是“理解程序行为”的过程。善用 GDB,让你的代码更健壮、更可靠!
本文由主机测评网于2025-12-21发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20251210864.html