如何在GDB中将地址转换为特定类型变量?

4
我在日志文件中看到了一个地址,类似于0x7fc9e401a02a,我知道这个地址是Connection类型的指针。
然后我启动了GDB,我想知道如何将这个地址转换为Connection*类型的临时变量,并显示相关的Connection*信息?
有什么提示吗?

4
试一下这个: print *(Connection*)0x7fc9e401a02a。假设你的地址来自你在gdb中查看的核心文件(core file)。如果该地址来自代码的运行,则必须在gdb中重新运行代码,否则它肯定不存在。请注意,该指令用于调试C/C++代码。 - JaredC
如果对象仍然存在于堆栈/堆上并且程序仍在运行,则只需附加(attach PID)到进程,您应该能够执行JaredC所写的操作。 - dbrank0
1个回答

5
因为我的Connection类有一个命名空间,所以我应该按以下方式操作:
print * ('MyNameSpace::Connection' *) 0x7fc9e401a02a

感谢JaredC和dbrank0的回答。

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