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

Visual studio 在VS2017中运行调试会话之前,如何在监视窗口中配置监视变量?,visual-studio,visual-studio-2017,visual-studio-debugging,watch-window,Visual Studio,Visual Studio 2017,Visual Studio Debugging,Watch Window,在我所有的搜索过程中,我没有遇到任何技巧、插件或设置允许我预先填充监视窗口以在调试期间使用 在Visual Studio 2017中查看变量的众所周知的步骤是设置断点(可能在变量的第一个实例上被赋值),然后将变量添加到查看窗口中。在后续运行中,被监视的变量应保留在监视窗口中 是否有办法在调试会话之前完成预填充监视窗口?我有按时间顺序运行的代码。在执行中断期间延长暂停和设置手表的时间会导致程序崩溃。设置变量监视对象时,这种超时会崩溃,从而导致与调试器的交互困难。预先填充观察名单会有很大帮助 我知道

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

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

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


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

监视只能在调试器中暂停时进行评估,例如在断点上。在正常执行期间无法对其进行评估。您可以选择以下方式绕过此限制:

  • 添加
    Debug.Print(…)
    或类似于输出值的代码的内容
  • 与#1类似,添加一个跟踪点,您可以在断点设置的操作设置中找到它(当您将鼠标悬停在断点上时,这是齿轮图标)。当跟踪点被命中时,它们将计算您在“操作”窗口中指定的表达式,并将其记录到“输出”窗口中。与添加自己的日志记录相比,跟踪点的优势在于,您可以在不构建代码的情况下关闭和打开跟踪点。更多信息,请访问:
  • 使用VS Enterprise only功能快照,它是IntelliTrace的一部分。基本上设置断点,但不要停下来看手表,而是继续。每次停止时,都会拍摄进程的快照,以捕获当时应用程序的状态。完成后,使用
    诊断工具
    窗口选择每个SNASphot并激活它们。对于每个快照,可以像停止应用程序一样使用调试器。因此,你可以使用手表和检查等。当然,你不能单步,因为应用程序已经运行,但你可以转到下一个快照等。更多信息,请访问:和

  • 只有在调试器中暂停(例如在断点上)时,才能对监视进行评估。在正常执行期间无法对其进行评估。您可以选择以下方式绕过此限制:

  • 添加
    Debug.Print(…)
    或类似于输出值的代码的内容
  • 与#1类似,添加一个跟踪点,您可以在断点设置的操作设置中找到它(当您将鼠标悬停在断点上时,这是齿轮图标)。当跟踪点被命中时,它们将计算您在“操作”窗口中指定的表达式,并将其记录到“输出”窗口中。与添加自己的日志记录相比,跟踪点的优势在于,您可以在不构建代码的情况下关闭和打开跟踪点。更多信息,请访问:
  • 使用VS Enterprise only功能快照,它是IntelliTrace的一部分。基本上设置断点,但不要停下来看手表,而是继续。每次停止时,都会拍摄进程的快照,以捕获当时应用程序的状态。完成后,使用
    诊断工具
    窗口选择每个SNASphot并激活它们。对于每个快照,可以像停止应用程序一样使用调试器。因此,你可以使用手表和检查等。当然,你不能单步,因为应用程序已经运行,但你可以转到下一个快照等。更多信息,请访问:和
  • 在运行之前,如何在监视窗口中配置监视变量 VS2017中的调试会话

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

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

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

    由于您的需求在某些特定的调试情况下是有意义的,所以您也可以像用户语音一样将您的建议发布到上,以添加新功能

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

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

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

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


    由于您的需求在某些特定的调试情况下是有意义的,您也可以像用户声音一样在上发布您的建议以添加新功能。

    我在开发社区上创建了一个新功能请求,这里:我在开发社区上创建了一个新功能请求,这里:仅供参考,您的第三个建议,即使我使用的是Microsoft Visual Studio Enterprise 2017版本15.9.16,也无法使用快照功能(很棒的选项!)。仅启用了三个选项中的两个。禁用的选项(灰色)为“IntelliTrace快照(托管和本机)”。此选项仅在Windows 10周年更新及更高版本上受支持。如果我在运行这个VS2017(