如何在 Visual Studio 的监视窗口(用于 C++)上列出和查看所有全局变量?

Posted

技术标签:

【中文标题】如何在 Visual Studio 的监视窗口(用于 C++)上列出和查看所有全局变量?【英文标题】:How can i list and watch all global variables on watch windows of visual studio (for c++)? 【发布时间】:2010-06-10 04:07:37 【问题描述】:

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

【问题讨论】:

【参考方案1】:

是你不知道全局变量名的问题吗? 还是您想查看许多全局变量并且不想在监视窗口中一遍又一遍地键入它们的问题? 目前我假设第二个。我还假设您的外部库是 .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的输出中扣除变量名。

【讨论】:

以上是关于如何在 Visual Studio 的监视窗口(用于 C++)上列出和查看所有全局变量?的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 的监视窗口中自动刷新 [重复]

从 Visual Studio 的监视窗口访问 javascript?

在 Visual Studio 监视窗口中显示包含特殊字符的数组范围。

Visual Studio 监视窗口查看对象的大小/内存占用

有没有办法在我自己的应用程序中使用 Visual Studio 的监视窗口?

Visual Studio:数据集和数据表可视化工具在监视窗口中不起作用