即使在应用程序仍在运行时,VS是否可以评估调试表?

时间:2010-01-29 22:11:46

标签: visual-studio debugging

通常在Visual Studio中,除非调试器在断点处停止,否则无法评估监视。是否有一个技巧或附加组件使Visual Studio在应用程序运行时评估手表?例如,每当执行在代码仍在运行时通过代码中的某个点并且不更改代码以插入Debug.WriteLine之类的语句时,请对其进行评估。

不确定这是可能的,但我想我会问。

3 个答案:

答案 0 :(得分:1)

是的,这是可能的。在您想要查看值的位置设置断点。右键单击断点并选择“When Hit ...”。勾选“打印消息”并编写类似{value}的表达式。程序运行时,消息将显示在“输出”窗口中。

答案 1 :(得分:0)

我会使用编译器指令来做到这一点。

#if DEBUG
     Debug.WriteLine
#end if

答案 2 :(得分:0)

不,这是不可能的。 Visual Studio中的评估功能是基于堆栈框架的机制。也就是说,每个评估都是在给定堆栈帧的上下文中完成的(通过堆栈窗口查看)。当程序运行时,堆栈帧的集合当前正在改变,因此无法进行稳定的评估。

此外,CLR还有其他限制,可以防止托管代码出现这种情况。除非debugee进程处于非常特定的状态,否则例如执行函数是不可能的。