Ubuntu系统C++调试

版权声明: https://blog.csdn.net/dadan1314/article/details/88060416

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 浮点数

猜你喜欢

转载自blog.csdn.net/dadan1314/article/details/88060416