gdb commands命令用法

gdb commands命令用法

基本原理:
设置断点,使用 command 命令设置断点的执行命令
例如:在断点 1 处,打印 ret 变量的值。

 //设置断点
(gdb) b rx_data
Breakpoint 1 at 0xffffffffa02cccf8: file drivers/target/iscsi/iscsi_target_util.c, line 1347.
(gdb) commands
Type commands for breakpoint(s) 1, one per line.
End with a line saying just "end".
/*输入当运行到断点时想执行的命令(单个或多个),输入end表示命令输入完成
例子中表示,打印c.iov的值,以及继续执行,两条命令*/
>p c.iov
>c
>end
/*设置完成后,输入info br,会出现类似以下的提示*/
(gdb) info br
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0xffffffffa02cccf8 in rx_data at drivers/target/iscsi/iscsi_target_util.c:1347
        p c.iov
        c
/*如果有多个断点,需要设置不同断点被断住时自动执行的命令,则可输入commands num实现设置,例如:*/
(gdb) commands 1
Type commands for breakpoint(s) 1, one per line.
End with a line saying just "end".
>p c.type
>c
>end
/*结果如下*/
(gdb)info br
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0xffffffffa02cccf8 in rx_data at drivers/target/iscsi/iscsi_target_util.c:1347
        p c.type
        c
/*如果想清空断点的命令,输入commands num后,直接输入end即可*/
(gdb)commands 1
>end
(gdb)info br
(gdb)info br
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0xffffffffa02cccf8 in rx_data at drivers/target/iscsi/iscsi_target_util.c:1347
/*在运行过程中经常出现: --Type <return> to continue, or q<return> to quit. 程序就被阻塞了,需要人手动敲一下回车才能继续。可通过设置height解决*/
(gdb)set height 0

另外,在/etc/gdb/gdbinit中,可以设置一些启动的参数,比如可以将上面的命令set height 0写入文件内,则启动后,会自动避免阻塞问题

# System-wide GDB initialization file.
set print pretty
set height 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值