什么是GDB?
GDB(GNU Debugger)是Linux环境下强大的调试工具,能帮助开发者定位代码中的逻辑错误和内存问题。其核心功能包括:
- 🛠️ 支持C/C++/Fortran等语言调试
- 🔍 实时查看变量值与内存状态
- ⚙️ 设置断点与条件断点
- 📊 反汇编代码分析执行流程
📌 本教程适合初学者入门,如需深入了解GDB高级特性,可参考调试工具全景指南
快速上手指南
启动调试会话
gdb ./your_program_name
💡 若程序未编译,需先使用
gcc -g
添加调试符号设置断点
break main
:在main函数设置断点break function_name
:在指定函数设置断点- 📌 可使用
info breakpoints
查看所有断点
运行与控制
命令 功能 run
启动程序执行 step
单步执行 next
跳过子函数调用 continue
继续运行直到下个断点 查看调试信息
- `print variable_name`:输出变量值 - `backtrace`:查看调用栈 - `watch expression`:监视特定表达式变化
高级技巧
- 🧠 反汇编分析:使用
disassemble
查看机器码执行流程 - 🔄 条件断点:
break function_name if condition
- 🕵️♂️ 内存检查:
x/10x $rsp
查看栈内存内容 - 📈 性能分析:结合gprof生成性能报告
常见问题排查
❓ 程序启动后立即退出?
检查是否缺少调试符号(需编译时添加-g
参数)❓ 如何查看函数参数?
在断点处使用print $rdi
(x86_64架构)或相应寄存器查看❌ 遇到段错误时?
使用bt
(backtrace)定位错误发生位置,结合info registers
分析寄存器状态
扩展学习
想要深入掌握GDB的图形化调试技巧?点击这里了解GDB与GUI工具的集成方法 🚀
📚 附:GDB官方文档 作为终极参考