什么是GDB?

GDB(GNU Debugger)是Linux环境下强大的调试工具,能帮助开发者定位代码中的逻辑错误和内存问题。其核心功能包括:

  • 🛠️ 支持C/C++/Fortran等语言调试
  • 🔍 实时查看变量值与内存状态
  • ⚙️ 设置断点与条件断点
  • 📊 反汇编代码分析执行流程

📌 本教程适合初学者入门,如需深入了解GDB高级特性,可参考调试工具全景指南

快速上手指南

  1. 启动调试会话

    gdb ./your_program_name
    

    💡 若程序未编译,需先使用gcc -g添加调试符号

  2. 设置断点

    • break main:在main函数设置断点
    • break function_name:在指定函数设置断点
    • 📌 可使用info breakpoints查看所有断点
  3. 运行与控制

    命令 功能
    run 启动程序执行
    step 单步执行
    next 跳过子函数调用
    continue 继续运行直到下个断点
  4. 查看调试信息

    调试界面
    - `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官方文档 作为终极参考