Linux 环境下调试 C 程序的实用指南

准备工作
在 Linux 环境下调试 C 程序,首先需要确保系统已经安装了编译器,如 GCC(GNU Compiler Collection),以下是准备工作的一些步骤:
-
安装 GCC 编译器
sudo apt-get update sudo apt-get install build-essential
-
安装调试工具
sudo apt-get install gdb
编写 C 程序

编写一个简单的 C 程序,以便后续进行调试,以下是一个简单的示例程序:
#include <stdio.h>
int main() {
int a = 10;
int b = 20;
int sum = a + b;
printf("The sum of a and b is: %d\n", sum);
return 0;
}
将上述代码保存为 example.c。
编译程序
使用 GCC 编译器编译程序,生成可执行文件:
gcc -o example example.c
使用 GDB 调试程序

-
启动 GDB 调试器
gdb ./example
-
设置断点
在 GDB 中,可以使用break命令设置断点,以下示例在main函数的printf语句处设置断点:
(gdb) break main.c:6
- 运行程序
使用run命令运行程序,直到遇到断点:
(gdb) run
- 查看变量值
在程序暂停时,可以使用print命令查看变量的值:
(gdb) print a
- 单步执行
使用next和step命令单步执行程序,观察程序执行过程:
(gdb) next (gdb) step
- 跳出函数
使用return命令从当前函数返回:
(gdb) return
- 继续执行
使用continue命令继续执行程序,直到下一个断点:
(gdb) continue
- 退出 GDB
使用quit命令退出 GDB:
(gdb) quit
常见调试技巧
- 条件断点
设置条件断点可以帮助你在满足特定条件时暂停程序,以下命令在sum等于 30 时暂停程序:
(gdb) break main.c:6 if sum == 30
- 监视变量
使用watch命令监视变量的变化:
(gdb) watch a
- 调用栈
使用backtrace命令查看当前的调用栈:
(gdb) backtrace
- 调用函数
在 GDB 中,可以使用call命令调用函数:
(gdb) call some_function()
在 Linux 环境下调试 C 程序,熟练掌握 GDB 调试器是至关重要的,通过本文的介绍,相信你已经掌握了基本的调试技巧,在实际开发过程中,不断积累调试经验,将有助于提高编程效率。















