GDB调试实战技巧全解析,C++开发者必会!

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 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值