C 是否在gdb中为打印命令指定数字大小?

C 是否在gdb中为打印命令指定数字大小?,c,gdb,C,Gdb,要处理可能是8、4、2或1字节的寄存器的各种添加(rax,eax,ax,al),有没有办法指定我使用的数字的字节数?比如说 # works for 4 bytes >>> p/x -1 $30 = 0xffffffff >>> p/x 1 $31 = 0x1 >>> p/d 0xffffffff $34 = -1 # can I get it to work for one byte, signed char? >>> p

要处理可能是8、4、2或1字节的寄存器的各种添加(
rax
eax
ax
al
),有没有办法指定我使用的数字的字节数?比如说

# works for 4 bytes
>>> p/x -1
$30 = 0xffffffff
>>> p/x 1
$31 = 0x1
>>> p/d 0xffffffff
$34 = -1

# can I get it to work for one byte, signed char?
>>> p/d 0xff
$35 = 255

一种简单的方法是使用强制转换告诉gdb值的类型

(gdb) p /d (char)0xff
$2 = -1

谢谢,你能不能链接到文档中的一个部分,解释一下如果有的话?我尝试了
help x
help p
,但没有找到太多的帮助。据我所知,没有非常明确的文档记录。要处理的命令。表达式位于正在调试的语言的上下文中。在这种情况下,C的默认类型是
int
,强制转换是更改任何表达式类型的方法。