以下是Linux下常用的C++调试工具及使用方式:
-
GDB(GNU Debugger)
- 功能:支持设置断点、单步执行、查看变量值、分析调用栈等,适用于命令行调试。
- 常用命令:
g++ -g -o program program.cpp:编译时添加调试信息。gdb ./program:启动调试器。break main:在main函数设置断点。run:运行程序。next/step:单步执行(跳过/进入函数)。print variable:查看变量值。backtrace:显示调用栈。
- 参考:
-
LLDB
- 功能:LLVM项目调试器,支持C++代码调试,与Clang集成紧密,具备高性能和现代化特性。
- 常用命令:类似GDB,如
breakpoint set --name main(设置断点)、run(运行程序)等。 - 注意:Linux下需手动安装,部分场景需配置环境。
-
Valgrind
- 功能:检测内存泄漏、越界访问等问题,适合内存调试。
- 常用命令:
valgrind --leak-check=full ./program。
-
AddressSanitizer (ASan)
- 功能:快速检测缓冲区溢出、未初始化内存等问题,需编译时启用。
- 使用方式:
g++ -fsanitize=address -o program program.cpp。
-
IDE集成工具
- CLion:内置GDB/LLDB,支持图形化断点设置、变量监控等。
- VS Code:通过C/C++扩展配置GDB调试,支持远程调试和复杂项目配置。
-
其他工具
- gprof:性能分析工具,用于定位程序瓶颈。
- DDD:基于GUI的调试工具,提供数据结构可视化。
选择建议:
- 基础调试优先用GDB或LLDB,适合命令行操作和复杂场景分析。
- 内存问题优先用Valgrind或ASan。
- 复杂项目推荐CLion或VS Code,提升调试效率。