为什么 gdb 在 64 位机器上只显示 32 位地址?
why gdb only show 32 bit address on 64 bit machine?
这是我的问题的屏幕截图(请参阅命令 x/1wt &f)
我想检查变量 f 的地址。由于我的电脑是 64 位的,我希望它是一个 64 位长的二进制数。但是它只显示 32 位。谁能解释为什么会这样?
对不起,我弄错了。 &在这里不是指地址。
你说x/1wt &f
,这就是说,在变量f
的地址显示一个32位的字,作为二进制。 &
的意思是地址。
如果你想看到地址本身,那么你想要print
命令,可以缩短为p
,所以p/x &f
将打印变量[=的地址11=] 为十六进制。
gdb
帮助系统非常好,因此 help x
和 help p
将为您提供可用标志的完整说明。
这是我的问题的屏幕截图(请参阅命令 x/1wt &f)
我想检查变量 f 的地址。由于我的电脑是 64 位的,我希望它是一个 64 位长的二进制数。但是它只显示 32 位。谁能解释为什么会这样?
对不起,我弄错了。 &在这里不是指地址。
你说x/1wt &f
,这就是说,在变量f
的地址显示一个32位的字,作为二进制。 &
的意思是地址。
如果你想看到地址本身,那么你想要print
命令,可以缩短为p
,所以p/x &f
将打印变量[=的地址11=] 为十六进制。
gdb
帮助系统非常好,因此 help x
和 help p
将为您提供可用标志的完整说明。