.NET调试在中断停止后继续



调试时,我在Visual Studio中使用断点。查看以下代码:

Try
   Dim Test1 As String
   Throw New Exception
Catch ex As Exception
   Msg("test")
End Try

我注意到,如果我在第2行(声明Test1的地方)放置一个断点,然后(通过按下停止按钮)停止程序,就会出现一个消息框,上面写着Test。如果程序已停止,如何显示消息框?这是一个非常简单的例子。这种情况通常发生在代码复杂得多的时候。

尽管您希望能够,但通常不能中断变量的声明,因为编译器会将其添加到生成的方法的IL的局部变量中,并且它会成为方法堆栈准备的一部分。实际上,当方法运行时,变量已经声明。

因此,引发异常实际上是运行的第一件事。

正如@sixlettervariables所说,如果分配变量,那么它就不同了,因为这是用户代码,是方法体的一部分。

您应该以不同的方式来看待它,而不是以标准线为基础。

调试器允许您包含冻结程序执行的指令。但是,因为您只声明了一个变量,所以此时无法冻结程序。

事实上,变量在您"点击"该行之前就已经声明了。

下一个可以冻结程序的地方是下一条指令(而不是声明)。您的下一个指令是Msg("test")

最新更新