GDB调试基础备忘

1.调试前提

被调试程序在编译时要加入-g选项,这样才能产生供gdb调试使用的信息。如

gcc -g hello.c

2.基本命令

(1)启动调试

gdb 可执行文件名,如 gcc a.out

执行上述命令后,只是为调试做好了准备,尚未启动被调试程序运行。此时进入调试界面。

(2)设置可执行文件参数

(gdb) set args 参数1 参数2 参数3 ...

(3)设置断点

(gdb) break 文件名:行号

如:break hello.c:5,则在hello.c文件的第5行设置断点。

(4)启动程序

(gdb)run

输入run,回车后被调试程序开始运行,并停在前面设置的断点处。

(5)单步执行

(gdb) next

单步执行,并且遇到函数直接跳过,不进入函数内部

(gdb) step

单步执行,并且遇到函数,会进入函数内部

(6)查看变量的值

(gdb) print 变量名

(7)查看内存

(gdb) x/内存单元个数显示方式内存单元大小 内存起始地址

如 (gdb)x /6xb pObj ,会打印出从pObj指向的内存地址开始的6个连续单元,每个单元大小为一个字节,显示格式为16进制。

其中显示方式还有:

x 按十六进制格式显示变量。
d 按十进制格式显示变量。
u 按十进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a 按十六进制格式显示变量。
i 指令地址格式
c 按字符格式显示变量。
f 按浮点数格式显示变量。

内存单元大小还有:

b表示单字节,
h表示双字节,
w表示四字节,
g表示八字节

(8)继续执行直到遇到下一个断点

(gdb)continue

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值