代码之家  ›  专栏  ›  技术社区  ›  René Nyffenegger

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

  •  2
  • René Nyffenegger  · 技术社区  · 6 年前

    当我打印 eax 以十六进制格式在gdb会话中注册,它不打印前导零:

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

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

    $6 = 0x0000000000000003
    

    有这样的功能吗?

    1 回复  |  直到 5 年前
        1
  •  2
  •   Michael Petch    6 年前

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

    你可以打印 long 价值观 %lx . 前置 lx 如果大小为16,则将在指定大小的字段中设置数字右对齐格式。如果你准备一个 0

    printf "%016lx", $rax
    

    如果你愿意 0x 要显示,您可以自己添加:

    printf "0x%016lx", $rax