我可以打印前导零的rax寄存器的内容吗?

时间:2018-08-04 06:37:16

标签: gdb x86-64

当我以十六进制格式在gdb会话中打印eax寄存器的内容时​​,它不会打印前导零:

(gdb) p/x $rax
$6 = 0x3

我正在寻找一种扩展输出以打印所有16个十六进制数字的可能性,以便输出变为

$6 = 0x0000000000000003

有这样的功能吗?

1 个答案:

答案 0 :(得分:2)

您可以使用printf命令使用 C printf like format strings格式化输出。

您可以使用long打印%lx值。在lx前面加一个类似16的大小将格式化在指定大小的字段中对正的数字。如果在0前面加上大小,它将为您填充零。这应该起作用:

printf "%016lx", $rax

如果您希望0x出现,可以使用以下命令自己添加:

printf "0x%016lx", $rax
相关问题