代码之家  ›  专栏  ›  技术社区  ›  spoulson

即使在应用程序仍在运行时,是否可以使用vs来评估调试监视?

  •  2
  • spoulson  · 技术社区  · 14 年前

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

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

    3 回复  |  直到 14 年前
        1
  •  1
  •   Hans Passant    14 年前

    是的,这是可能的。在希望看到值的位置设置断点。右键单击断点并选择“点击时…”。勾选“打印消息”,然后写一个表达式,如值。程序运行时,消息显示在输出窗口中。

        2
  •  0
  •   Eric    14 年前

    我将使用编译器指令来实现这一点。

    #if DEBUG
         Debug.WriteLine
    #end if
    
        3
  •  0
  •   JaredPar    14 年前

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

    此外,clr中还有其他限制,这些限制会阻止托管代码执行此操作。例如,除非debuge进程处于非常特定的状态,否则不可能执行函数。