当我以十六进制格式在gdb会话中打印eax
寄存器的内容时,它不会打印前导零:
(gdb) p/x $rax
$6 = 0x3
我正在寻找一种扩展输出以打印所有16个十六进制数字的可能性,以便输出变为
$6 = 0x0000000000000003
有这样的功能吗?
答案 0 :(得分:2)
您可以使用printf
命令使用 C printf
like format strings格式化输出。
您可以使用long
打印%lx
值。在lx
前面加一个类似16的大小将格式化在指定大小的字段中对正的数字。如果在0
前面加上大小,它将为您填充零。这应该起作用:
printf "%016lx", $rax
如果您希望0x
出现,可以使用以下命令自己添加:
printf "0x%016lx", $rax