Gdb 我可以用前导零打印rax寄存器的内容吗?
当我以十六进制格式在gdb会话中打印Gdb 我可以用前导零打印rax寄存器的内容吗?,gdb,hex,x86-64,Gdb,Hex,X86 64,当我以十六进制格式在gdb会话中打印eax寄存器的内容时,它不会打印前导零: (gdb) p/x $rax $6 = 0x3 我正在寻找一种可能性,以扩大输出打印所有16位十六进制数字,使输出成为 $6 = 0x0000000000000003 有这样的功能吗?您可以使用printf命令使用C格式化输出 您可以使用%lx打印long值。使用大小为16的Prependlx将在指定大小的字段中格式化右对齐的数字。如果您将0预先添加到它将为您零填充的大小。这应该起作用: printf "%016l
eax
寄存器的内容时,它不会打印前导零:
(gdb) p/x $rax
$6 = 0x3
我正在寻找一种可能性,以扩大输出打印所有16位十六进制数字,使输出成为
$6 = 0x0000000000000003
有这样的功能吗?您可以使用
printf
命令使用C格式化输出
您可以使用%lx
打印long
值。使用大小为16的Prependlx
将在指定大小的字段中格式化右对齐的数字。如果您将0
预先添加到它将为您零填充的大小。这应该起作用:
printf "%016lx", $rax
如果要显示0x
,您可以自己添加:
printf "0x%016lx", $rax
printf”%016lx“,$rax
@MichaelPetch:这件事太完美了。如果你把你的评论变成回答,我可以接受。