如何在visual studio的观察窗口上列出并观看所有全局变量(对于c ++)?

tib*_*boo 9 c++ debugging static global-variables visual-studio

当在main()的断点处停止时,我可以手动添加全局变量的名称来监视窗口,但我想要的是如何显示所有全局变量的列表,因为我使用的是外部库,其中包含许多静态的东西.可能吗?提前致谢!

Pat*_*ick 6

问题是您不知道全局变量名称吗?还是问题是你想查看很多全局变量,不想在观察窗口中一遍遍的输入?目前我假设第二个。我还假设您的外部库是 .LIB 库而不是 .DLL。

您可以编写一个类,该类包含您想要查看的每个全局变量的一个成员,使其成为引用,并在启动时构造该类的实例,将全局变量分配给引用成员,如下所示:

class MyGlobalVariableClass
   {
   public:
      MyGlobalVariableClass()
      : m_var1(globalVariable1OfExternalLibrary)
      , m_var2(globalVariable2OfExternalLibrary)
      {}
   private:
      long   &m_var1;
      double &m_var2;
   };
MyGlobalVariableClass myGlobalVariableInstance;
Run Code Online (Sandbox Code Playgroud)

现在您只需在观察窗口中输入 myGlobalVariableInstance 并展开它,您将看到它的所有成员,以及所有全局变量。

这个技巧假设您知道全局变量的所有名称。如果没有,您可以尝试使用 DUMPBIN 来调查外部库的 LIB 内容,并尝试从 DUMPBIN 的输出中扣除变量名称。