如何在GDB中打印指针内容?
在GDB中,我正在尝试: gdb>p/s*0x0804b680 这给了我: $6=0x6c627550 显然,它应该打印出lbruP,还是我错了 char*p=“abcde” 做 e、 g.不是*p如何在GDB中打印指针内容?,gdb,Gdb,在GDB中,我正在尝试: gdb>p/s*0x0804b680 这给了我: $6=0x6c627550 显然,它应该打印出lbruP,还是我错了 char*p=“abcde” 做 e、 g.不是*p (gdb) p /s p $9 = 0x40060c "abcde" 如果p不是char*(例如void*v=p)类型,则可以强制转换它或使用x命令 (gdb) p /s (char*)v $7 = 0x40061c "abcde" (gdb) x /s v 0x40061c: "abcde
(gdb) p /s p
$9 = 0x40060c "abcde"
如果p不是char*(例如void*v=p)类型,则可以强制转换它或使用x命令
(gdb) p /s (char*)v
$7 = 0x40061c "abcde"
(gdb) x /s v
0x40061c: "abcde"
这是因为p已经是指针类型了。在我的例子中,0x0804b680只是一个数字,当“p/s 0x0804b680”输出“0x0804b680”时。通过前缀“*”,我告诉GDB将0x0804b680作为指针处理。我这样做了。所以我肯定我的GDB出故障了,因为它只输出了一半的答案。通常输出为“$6=0x6c627550‘lbruP’”。
(gdb) p /s (char*)v
$7 = 0x40061c "abcde"
(gdb) x /s v
0x40061c: "abcde"