Ubuntu系统C++调试

本文详细介绍GDB的使用方法,包括程序启动、执行控制、断点设置、变量检查及堆栈跟踪等核心功能,适合各阶段开发者学习掌握。

gdb启动


# 间接启动
gdb
(gdb) file <程序名> 
或 
(gdb) attach <进程pid>

# 直接启动
gdb <程序名>
gdb <程序名> <core>
gdb <程序名> <进程pid>

## 有时候需要sudo gdb

gdb命令

执行

# 从第一行开始,并停止
start

# 开始执行
run

# 继续执行
continue

# 逐过程
next
next n

# 逐语句
step

# 跳出,当前函数返回
finish

# 执行到指定位置
until <行号>

断点

# 列举所有断点信息 简写info b
info breakpoints

# 设置断点 简写 b 
break <行号>
break <函数名>
break <文件名:行号>

# 删除断点 简写 d 
delete <断点序号>

# 开断点
enable
enable <断点序号>

# 关断点
disable 
disable <断点序号>

# 保存断点和导入断点
save breakpoint infob.bp
gdb <程序名> -x infob.bp

变量

# 打印程序变量值 简写p
print <变量名>

# 开启打印格式变量
set print pretty on

# 设置程序变量值
set var <变量名>=<值>

# 查看变量类型
whatis <变量名>

# 查看变量类型结构
ptype <变量名>

# 监视变量
info display
display   <变量名>
undisplay <变量名序号>

堆栈

# 查看堆栈信息 简写 bt
backtrace

# 切换到栈编号为N的上下文中
frame n

# 查看当前函数调用栈帧的信息
info frame

代码查看

# 设置显示行数
set listsize n

# 获取显示行数
show listsize

# 显示指定位置代码
list <行号>
list <行号>,
list ,<行号>
list <函数名>


# 显示当前行后面和前面的源代码
list
list -

内存查看

# 查看a变量值
x &a
x /4bx <地址>

# b h w g 单字节 双字节 四字节 八字节
# x 十六进制
# d 有符号十进制
# u 无符号十进制
# o 八进制
# t 二进制
# a 地址
# c 字符
# f 浮点数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值