2012-01-10 112 views
1

很多次在Visual Studio for C++中,我们都可以在调试器中看到类的vfptr或vptr地址。在Visual Studio中,我们还可以通过内置的内存视图分析线程的内存。 但是可见的信息是二进制的。利用在Visual Studio调试器中看到的虚拟指针表地址

有没有什么方法可以通过虚拟指针地址获得更多关于类类型或任何其他有用信息以用于调试目的?(考虑到我们可以通过Visual Studio中的此地址分析内存本身)

+0

闻起来就像重塑RTTI给我。 – Griwes 2012-01-10 15:02:02

回答

4

如果您在QuickWatch变量窗口中展开课程,您可以像这样在ascii中看到课程详细信息。

enter image description here

在这里,您可以看到类是Foo类型的并具有与所谓bar

0

我用它为我的自定义RTTI一个功能的虚拟表。提取vf指针很容易,它对每个类都是唯一的(当然你需要在你的类中至少有一个虚函数)。在visual C++和最近的gcc和llvm中,它是32位体系结构中类的第一个长字。玩这种游戏并不安全,如果你没有真正的需要,你可能不应该那样做。

相关问题