GDB调试简介与调试配置

📅 2026/6/29 19:11:01
GDB调试简介与调试配置
GDB简介GDB全称为GNU Debugger是GNU项目提供的一款命令行调试工具主要用于调试C、C 等语言编写的程序。在Linux开发中GDB是非常常用的调试工具尤其适合分析程序运行过程中的崩溃、段错误、逻辑错误以及变量变化情况。正常情况下我们运行一个程序时只能看到程序最终的执行结果。如果程序中出现错误例如数组越界、空指针访问、死循环等问题单靠输出信息往往很难快速定位问题所在。而使用GDB后可以让程序按照调试者的控制逐步执行并在执行过程中观察程序内部状态。在后面的教程与学习当中主要讲解GDB的各类基本功能包括1、断点管理2、查看与修改变量3、内存查看与修改4、寄存器查看与修改5、源代码查看与管理6、函数调用栈管理7、多线程调试8、core dump文件调试9、发行版程序调试每个小节中都会列出示例程序并逐步进行调试讲解二、开发调试环境准备因为这系列教程主要是在kubuntu24.04的环境下进行所以需要先在Linux环境下配置好开发调试环境主要用到gcc、g、gdb等软件。安装命令如下sudo apt install gcc g make gdb三、GDB调试编译选项在使用GDB调试程序之前通常需要在编译程序时添加调试符号。调试符号中保存了源代码和可执行程序之间的对应关系例如变量名、函数名、源文件名、代码行号等信息。如果没有调试符号程序仍然可以被GDB启动但是调试体验会非常差。可能只能看到汇编指令、内存地址和部分函数地址而无法准确显示源代码行号也无法方便地查看变量名。例如下面是一个普通的编译命令gcc main.c -o main这种方式生成的可执行程序通常不包含完整的调试信息。为了让GDB能够更好地调试程序需要加上-g选项gcc -g main.c -o main在实际开发中为了让调试结果更容易理解通常还会关闭编译优化。例如gcc -g -O0 main.c -o main其中-O0表示关闭优化。因为开启优化后编译器可能会调整代码执行顺序、内联函数、删除未使用变量等这会导致GDB中看到的执行过程和源代码不完全一致。因此在学习和调试阶段常用的编译方式是gcc -g -O0 main.c -o main