GDB调试实战技巧全解析,C++开发者必会!
GDB是Linux下最强大的调试工具,掌握GDB是C++开发者的必备技能。本文从基础到高级,帮你快速定位Bug。
一、GDB基础
1.1 编译带调试信息
# 必须加-g选项
g++ -g -O0 main.cpp -o main
# -g:生成调试信息
# -O0:不优化(优化后代码和源码对应关系会乱)
# -ggdb:生成GDB专用的调试信息
1.2 启动GDB
# 基本启动
gdb ./main
# 带参数启动
gdb --args ./main arg1 arg2
# 附加到运行中的进程
gdb -p 12345
# 调试core dump
gdb ./main core
1.3 常用命令
# 运行
run (r) # 开始运行
continue (c) # 继续执行
next (n) # 单步(不进入函数)
step (s) # 单步(进入函数)
finish # 执行到当前函数返回
until # 执行到下一行(跳过循环)
# 断点
break (b) # 设置断点
info break # 查看断点
delete (d) # 删除断点
disable/enable # 禁用/启用断点
# 查看
print (p) # 打印变量
display # 每次停止时显示
info locals # 查看局部变量
backtrace (bt) # 查看调用栈
二、断点技巧
2.1 条件断点
# 在循环中设置条件断点
break main.cpp:42 if i


524

被折叠的 条评论
为什么被折叠?



