2012-01-10 17 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位體系結構中類的第一個長字。玩這種遊戲並不安全,如果你沒有真正的需要,你可能不應該那樣做。

相關問題