GDB打印二进制数时如何保留前导零

10
我将尝试使用以下命令在GDB中打印一个32位寄存器:

define gpioa_moder
    print /t *(uint32_t*)0x48000000
end

这是我得到的内容:

101000000000000000010010100000

然而,我希望像这样保留前面缺失的两个零:

00101000000000000000010010100000

谢谢。

2
也许可以使用 x(examine)命令而不是 print?给定一个地址,它会以二进制形式打印地址和地址处的值,在这种情况下显示所有的 32 位,例如 (gdb)x &my_uint32 -> 0x48000000: 00101000000000000000010010100000,虽然不完全符合你的需求,但可能更接近一些 - 奇怪的是似乎没有一种方法指定 print/t 选项的格式。 - bph
1个回答

3
你可以尝试使用x(examine)命令。然后像这样使用它:
x /w 0x48000000
---> 0x48000000: 00101000000000000000010010100000

你甚至可以使用其他格式参数bhg来打印不同大小的内容。

或者,具有相同的效果:x/4tb 0x48000000 - Michael Foukarakis
1
“Examine”不是“print”的替代品。如果我想要打印一个寄存器怎么办? - Błażej Michalik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接