Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1744867
  • 博文数量: 438
  • 博客积分: 9799
  • 博客等级: 中将
  • 技术积分: 6092
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-25 17:25
文章分类

全部博文(438)

文章存档

2019年(1)

2013年(8)

2012年(429)

分类: LINUX

2012-03-30 17:24:47

ptype命令可以查看变量的类型,简写为pt。

gdb> ptype n
type = int


也可以查看结构体的类型

gdb> pt mt
type = struct mytype {
    int a;
    char *b;
    short int c;
}

print命令查看变量的值,简写成p

gdb> p mt.a
$2 = 30

它以最‘舒适”的方式打印变量,即根据变量的类型来打印变量的值。

gdb> p mt.b
$3 = 0x80483d0 "UWVS\350i"

也可以打印结构体。

gdb> p mt
$4 = {a = 30, b = 0x80483d0 "UWVS\350i", c = 0}

set print pretty会让输出好看些

gdb> p mt
$5 = {
  a = 30,
  b = 0x80483d0 "UWVS\350i",
  c = 0
}


也可以打印数组。

gdb> p ar
$2 ={19, 235, 32, 53, 11, 89, 21}
gdb> pt ar
type = int [7]

可以设置打印的格式,比如以十六进制格式打印上面的数组:

gdb> p /x ar
$6 = {0x13, 0xeb, 0x20, 0x35, 0xb, 0x59, 0x15}

可以设置的格式有:

ooctal
xhex
ddecimal
uunsigned decimal
tbinary
ffloat
aaddress
cchar


也可以打印变量的地址或指针所指的变量值

gdb> p &mt.a
$7 = (int *) 0xbffff1dc

gdb> p *(&mt.a)
$8 = 2797556


set命令可以改变变量值

gdb> set mt.a=16
gdb> p mt.a
$9 = 16


或者直接用print命令,设置并打印变量值

gdb> p mt.a = 81
$10 = 81
阅读(13531) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~