以下是Linux下C++调试的实用方法及工具:
-g
选项生成调试信息,启动GDB后设置断点(break
)、单步执行(next/step
)、查看变量(print
)等。break if
)、观察点(watch
)、多线程调试(info threads
)、反汇编(layout asm
)等。breakpoint set
(设置断点)、run
(运行)、frame variable
(查看变量)、thread backtrace
(查看调用栈)。launch.json
配置GDB/LLDB,支持断点、变量监视、实时调试。-g
选项。valgrind --leak-check=full ./program
。-fsanitize=address
。#ifdef DEBUG
宏控制调试输出,避免冗余日志。ulimit -c unlimited
生成core文件,用GDB分析崩溃原因。info threads
(查看线程)、thread <id>
(切换线程)。工具 | 适用场景 | 优势 |
---|---|---|
GDB | 复杂C++项目、底层调试 | 功能全面,支持汇编级调试 |
LLDB | 现代C++、LLVM生态项目 | 语法简洁,脚本支持强大 |
Valgrind | 内存问题排查 | 免费、检测全面 |
VS Code | 快速迭代开发 | 集成度高,调试体验流畅 |
根据项目需求选择合适工具,GDB/LLDB适合深度调试,Valgrind用于内存问题,VS Code提升开发效率。