GDB调试C++程序核心是三步:编译时加-g、启动GDB、用断点和单步控制执行;不加-g则无法查看变量或源码,必须用g++ -g或CMake设置Debug模式,再通过b/r/n/s/p/bt等命令调试。

用GDB调试C++程序,核心是三步:编译时加-g、启动GDB、用断点和单步控制执行。不加调试信息,GDB几乎没法看变量或源码。
编译时必须带 -g 选项
GDB依赖调试符号,而默认编译(如 g++ main.cpp -o app)会剥离这些信息。正确做法是:
-
g++ -g -o app main.cpp—— 最基础,启用完整调试信息 -
g++ -g3 -O0 -o app main.cpp——-g3包含宏定义,-O0关闭优化(避免代码重排导致单步跳变) - 如果用了 CMake,在
CMakeLists.txt中设set(CMAKE_BUILD_TYPE Debug),它会自动加-g
常用 GDB 启动与运行命令
启动后先加载程序,再决定怎么跑:
-
gdb ./app—— 直接加载可执行文件 -
gdb ./app core—— 加载崩溃生成的 core 文件(需先ulimit -c unlimited) -
run或r—— 开始运行(支持传参:r arg1 "arg two") -
kill—— 终止当前运行中的程序 -
quit或q—— 退出 GDB
打断点、单步、查状态
这是日常调试最频繁的操作:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~