分类: 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}
可以设置的格式有:
o | octal | x | hex | d | decimal | u | unsigned decimal | |||
t | binary | f | float | a | address | c | char |
也可以打印变量的地址或指针所指的变量值。
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