在调试模式下查看变量的内容?(断点除外)

Viewing the contents of a variable in debug mode? (Other than with break points)

本文关键字:断点 模式 调试 变量      更新时间:2023-10-16

我正在编写一个程序来计算曼德布洛特集合(然后在Windows下的OpenGL中呈现它),以便利用并行编程技术。

应该演示线程、互斥体和信号量的使用;所以目前我正在使用多个线程(水平拆分设置)计算集合并为每个线程计时,然后将其添加到总数中(总数是受互斥锁保护的全局变量)

我希望能够在调试模式下查看总计 - 除了在 OpenGL 窗口中呈现总计或使用断点检查变量的内容之外,是否有任何相对简单的方法可以做到这一点?

如果你在Windows上,你可以使用OutputDebugString并使用一个名为DebugView的工具查看结果。缺点是它会在新行上打印每个值,而不是就地更新它(我想这是您更喜欢的)。

如果要查看将就地更新的值,可以使用性能计数器,但这要麻烦得多:首先,程序必须实现提供程序。其次,您必须编写另一个程序(使用者)来跟踪此计数器并显示它。但是,如果您想要最大的灵活性,此API非常棒,因为这意味着许多程序可以观察提供程序的计数器,例如,它们可以记录到文件中并重放或转换为图形。

最简单的方法是以某种方式将消息输出到调试流,然后使用 IDE 查看它。在窗口下,您可以使用: OuputDebugString(LPCTSTR lpOutputString);

您应该能够从调试器读取全局变量。你试过吗?