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