在VS2017中运行调试会话之前,如何在监视窗口中配置监视变量?



在我的所有搜索中,我没有遇到任何技巧、插件或设置,可以让我预先填充监视窗口以便在调试期间使用。

Visual Studio 2017中监视变量的众所周知的步骤是设置断点(可能在为变量分配值的第一个实例上),然后将变量添加到监视窗口。 在后续运行中,该监视变量应保留在"监视窗口"中。

有没有办法在调试会话之前完成预填充监视窗口? 我有按定时顺序运行的代码。在执行中断期间延长暂停和设置监视的时间会导致程序崩溃。设置可变监视对象时,此类超时崩溃会导致与调试器交互变得困难。 预先填充观察名单将有很大帮助。

我知道我可以使用一种技术,例如使用Debug.Print(...)语句,这些语句在代码执行期间打印到输出窗口。 但是,这不允许我从监视窗口对调试工作进行控制和视觉反馈。

只有在调试器中暂停时(例如在断点上)才能计算监视。在正常执行期间无法评估它们。您解决此限制的选项是:

  1. 添加输出值的Debug.Print(...)或类似代码的内容。
  2. 与 #1 类似,添加一个跟踪点,您可以在断点设置的操作设置中找到该跟踪点(这是将鼠标悬停在断点上时的齿轮图标)。点击跟踪点后,它们将计算您在操作窗口中指定的表达式,并将其记录到Output窗口中。与添加自己的日志记录相比,TracePoint 的优势在于,无需生成代码即可将其关闭和打开。更多信息: https://learn.microsoft.com/en-us/visualstudio/debugger/using-breakpoints?view=vs-2019#BKMK_Print_to_the_Output_window_with_tracepoints
  3. 使用仅限 VS Enterprise 的功能快照,该功能是 IntelliTrace 的一部分。基本上设置您的断点,但不要停在它们上面查看手表,只需继续。每次停止时,都会拍摄进程的快照,以捕获应用程序当时的状态。完成后,使用Diagnostic Tools窗口选择每个snasphots并激活它们。对于每个快照,可以使用调试器,就像停止应用程序一样。因此,您可以使用手表和检查等。当然,您不能步进,因为应用程序已经运行,但您可以转到下一个快照等。更多信息:https://learn.microsoft.com/en-us/visualstudio/debugger/view-snapshots-with-intellitrace?view=vs-2019 和 https://devblogs.microsoft.com/visualstudio/step-back-while-debugging-with-intellitrace/

如何在运行前在监视窗口中配置监视变量 VS2017中的调试会话?

恐怕答案是否定的。目前,只能在调试会话启动后配置"监视"窗口。这就像运行时窗口仅在调试期间发生一样。

所以我们现在不能在调试会话之前预填充它。换句话说,这是设计使然。

作为替代方法,您可以按照安迪上面的详细建议进行操作。

由于您的需求在某些特定的调试情况下是有意义的,因此您还可以在开发社区上发布您的建议,例如用户语音以添加新功能。

最新更新