7
當停在main()的斷點處時,我可以手動添加全局變量的名稱來觀察窗口,但是我想要的是如何顯示所有全局變量的列表,因爲我使用的是外部庫,它包含許多靜態的東西。 這可能嗎? 在此先感謝!如何在Visual Studio的監視窗口(對於C++)列出並觀察所有全局變量?
當停在main()的斷點處時,我可以手動添加全局變量的名稱來觀察窗口,但是我想要的是如何顯示所有全局變量的列表,因爲我使用的是外部庫,它包含許多靜態的東西。 這可能嗎? 在此先感謝!如何在Visual Studio的監視窗口(對於C++)列出並觀察所有全局變量?
問題是你不知道全局變量名? 或者是你想查看許多全局變量並且不想在監視窗口中一遍又一遍地輸入它們的問題? 現在我假設第二個。我還假設你的外部庫是.LIB庫而不是.DLL。
您可以編寫一個類,該類包含您想要觀察的每個全局變量的一個成員,將其作爲引用,並在啓動時構建該類的實例,並將全局變量分配給引用成員,如下所示:
class MyGlobalVariableClass
{
public:
MyGlobalVariableClass()
: m_var1(globalVariable1OfExternalLibrary)
, m_var2(globalVariable2OfExternalLibrary)
{}
private:
long &m_var1;
double &m_var2;
};
MyGlobalVariableClass myGlobalVariableInstance;
現在,您只需在觀察窗口中輸入myGlobalVariableInstance,展開它,並且您將看到它的所有成員,從而看到所有全局變量。
這個技巧假定你知道全局變量的所有名字。 如果不這樣做,可以嘗試使用DUMPBIN來調查外部庫的LIB的內容,並嘗試從DUMPBIN的輸出中扣除變量名稱。
這個把戲做得很好! – tiboo 2010-06-10 07:27:22