我正在尝试使用 gdb 查看 python 变量。
(gdb) python print(hex(id(a)))
0x7f3ca4f68c20
(gdb) x 0x7f3ca4f68c20
0xa4f68c20: Cannot access memory at address 0xa4f68c20
有人可以解释为什么当我要求 gdb 查看0x7f3ca4f68c20
时,它会尝试访问0xa4f68c20
?
谢谢。
假设您的 gdb 附加到目标进程(通常情况如此(,您正在查看错误的内存空间。id(a)
在 gdb 的内存空间中给出对象地址,而x
命令则查看目标内存空间。
如果您的情况,目标似乎也是一个 32 位进程,这就是您的地址被截断的原因。