linux gdb的详细用法 运行与断点,linux gdb的详细用法 打印 (二)-Go语言中文社区...

本次讲解一下在gdb中如何使用打印的功能

#include

int func()

{

int p = 0;

int q = 0;

for(p = 0; p < 5; p++)

{

q++;

printf("p = %dn", p);

printf("q = %dn", q);

}

return 0;

}

int main()

{

int i = 1;

i = i + 1;

printf("func= %s, line= %d, i= %dn", __func__, __LINE__, i);

func();

i++;

printf("func= %s, line= %d, i= %dn", __func__, __LINE__, i);

return 0;

}

1 打印命令 print 简写p

在for循环内第12行设置一个断点

运行效果:

e9baa6089bf815159f1f24b5b42df476.png

使用p命令打印变量q的值

caa71c888a806803ba84971c93b9ff10.png

可以看到q的值为1。

常用的输出格式有以下几种:

x: 十六进制格式

d:有符号的十进制整数格式

u:无符号的十进制整数格式

o:八进制整数格式

t:二进制整数格式

c:字符格式

f:浮点数格式

例如:打印出十六进制格式

P/x 变量

2478ec53bb2581c1316acc52babf0cab.png

2 打印命令display

(1)display 命令也用于打印变量的值

display 变量

display 命令和 print 命令的区别是,使用display会在程序每次运行到此断点后都会打印出变量的值。

例如在程序的第12号打断点,运行到断点处,用display打印p q 的值

a17edffdef04309e40fae940f351a587.png

可以看到输入displayp后,会打印出p的值,冒号前面为序号。在使display使能或不使能的时候会用到。

使用c命令使程序继续运行后,又运行到断点去,此时的现象为:

17863ce7936f819b68c3dd885b6b3fc8.png

可以看到p 和 q的值被自动的打印出来。

(2)使用disable 使display命令暂时失效

格式: disable display 序号

例如,使序号1暂时取消打印,也就是不打印p的值,可以看到继续运行后只打印了序号2中的q的值。

9b0c25b4a75f98b0fe35a5b7dd2cce52.png

(3)使用enable 使失效的display 重新使能

格式:enable display 序号

(4)使用delete删除指定的显示数据的序号

格式delete display 序号

例如删除序号为2的打印,也就是不打印q的值

d3a9f82a26b3c617b9f531fbfd6a9264.png

undisplay命令与delete命令功能相同

(5)使用info命令查看display相关的信息

格式:info display

0c61bf10d8557c8f704634f00c67b397.png

可以看到序号2已经不存在了,因为之前我们用delete命令删除了。

现在可以看到序号1,为不使能状态,打印的为变量p的值。

3 用whatis命令查看变量或表达式的数据类型

格式:whatis 变量或表达式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值