如何在 VS2017 中 Window 调试会话 运行 之前在监视 Window 中配置监视变量?
How Can Watch Variables be Configured in a Watch Window Before Running a Debug Session in VS2017?
在我所有的搜索中,我没有遇到任何技巧、插件或设置可以让我预先填充 Watch Window调试时使用。
Visual Studio2017观察变量的众所周知的步骤是设置断点(可能在变量被赋值的第一个实例上) ,然后,将变量添加到 Watch Window。在后续运行中,该监视变量应保留在 Watch Window.
中
有没有办法在调试会话之前完成预填充 Watch Window?我有按时间顺序运行的代码。在执行中断期间花费延长的时间来暂停和设置手表会导致程序崩溃。在设置可变监视对象时,此类超时会导致与调试器的交互变得困难。预填充监视列表将有很大帮助。
我知道我可以使用一种技术,例如使用 Debug.Print(...)
语句,这些语句在代码执行期间打印到 Output Window。但是,这不允许我对来自 Watch Window.
的调试工作进行控制和视觉反馈
只有当您在调试器中暂停时才能评估手表,比如在断点上。在正常执行期间无法评估它们。解决此限制的选项是:
- 添加
Debug.Print(...)
或类似于您的输出值的代码。
- 与 #1 类似,添加一个 TracePoint,您可以在断点设置的操作设置中找到它(这是将鼠标悬停在断点上时的齿轮图标)。当 TracePoints 被击中时,它们将评估您在操作 window 中指定的表达式并将其记录到
Output
window。与添加您自己的日志记录相比,TracePoints 的优势在于您可以在不构建代码的情况下关闭和打开它。更多信息:https://docs.microsoft.com/en-us/visualstudio/debugger/using-breakpoints?view=vs-2019#BKMK_Print_to_the_Output_window_with_tracepoints
- 仅使用 VS Enterprise 功能 Snapshots,它是 IntelliTrace 的一部分。基本上设置你的断点,而不是停下来查看手表,而是继续。每次您停止进程的快照时,都会捕获当时应用程序的状态。然后一旦你完成使用
Diagnostic Tools
window 到 select 每个快照并激活它们。对于每个快照,您都可以像停止应用程序一样使用调试器。所以你可以使用手表和检查等。当然你不能一步,因为应用程序已经 运行 但你可以转到下一个快照等。更多信息位于:https://docs.microsoft.com/en-us/visualstudio/debugger/view-snapshots-with-intellitrace?view=vs-2019 and https://devblogs.microsoft.com/visualstudio/step-back-while-debugging-with-intellitrace/
How Can Watch Variables be Configured in a Watch Window Before Running
a Debug Session in VS2017?
恐怕答案是 negative.For 现在,Watch window 只能在调试会话 start.It 之后配置,就像运行时 window 一样在调试期间发生。
所以我们现在不能在调试会话之前预填充它。换句话说,这是设计使然。
作为替代方法,您可以按照安迪上面的详细建议进行操作。
并且由于您的需求在某些特定的调试情况下是有意义的,您也可以post您对development community的建议,如用户的声音,以添加新功能。
在我所有的搜索中,我没有遇到任何技巧、插件或设置可以让我预先填充 Watch Window调试时使用。
Visual Studio2017观察变量的众所周知的步骤是设置断点(可能在变量被赋值的第一个实例上) ,然后,将变量添加到 Watch Window。在后续运行中,该监视变量应保留在 Watch Window.
中有没有办法在调试会话之前完成预填充 Watch Window?我有按时间顺序运行的代码。在执行中断期间花费延长的时间来暂停和设置手表会导致程序崩溃。在设置可变监视对象时,此类超时会导致与调试器的交互变得困难。预填充监视列表将有很大帮助。
我知道我可以使用一种技术,例如使用 Debug.Print(...)
语句,这些语句在代码执行期间打印到 Output Window。但是,这不允许我对来自 Watch Window.
只有当您在调试器中暂停时才能评估手表,比如在断点上。在正常执行期间无法评估它们。解决此限制的选项是:
- 添加
Debug.Print(...)
或类似于您的输出值的代码。 - 与 #1 类似,添加一个 TracePoint,您可以在断点设置的操作设置中找到它(这是将鼠标悬停在断点上时的齿轮图标)。当 TracePoints 被击中时,它们将评估您在操作 window 中指定的表达式并将其记录到
Output
window。与添加您自己的日志记录相比,TracePoints 的优势在于您可以在不构建代码的情况下关闭和打开它。更多信息:https://docs.microsoft.com/en-us/visualstudio/debugger/using-breakpoints?view=vs-2019#BKMK_Print_to_the_Output_window_with_tracepoints - 仅使用 VS Enterprise 功能 Snapshots,它是 IntelliTrace 的一部分。基本上设置你的断点,而不是停下来查看手表,而是继续。每次您停止进程的快照时,都会捕获当时应用程序的状态。然后一旦你完成使用
Diagnostic Tools
window 到 select 每个快照并激活它们。对于每个快照,您都可以像停止应用程序一样使用调试器。所以你可以使用手表和检查等。当然你不能一步,因为应用程序已经 运行 但你可以转到下一个快照等。更多信息位于:https://docs.microsoft.com/en-us/visualstudio/debugger/view-snapshots-with-intellitrace?view=vs-2019 and https://devblogs.microsoft.com/visualstudio/step-back-while-debugging-with-intellitrace/
How Can Watch Variables be Configured in a Watch Window Before Running a Debug Session in VS2017?
恐怕答案是 negative.For 现在,Watch window 只能在调试会话 start.It 之后配置,就像运行时 window 一样在调试期间发生。
所以我们现在不能在调试会话之前预填充它。换句话说,这是设计使然。
作为替代方法,您可以按照安迪上面的详细建议进行操作。
并且由于您的需求在某些特定的调试情况下是有意义的,您也可以post您对development community的建议,如用户的声音,以添加新功能。