打破停止后,.NET Debug继续运行

时间:2012-03-23 15:07:09

标签: .net debugging

我在调试时在Visual Studio中使用断点。看看下面的代码:

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

我注意到如果我在第2行放置断点(声明Test1)然后停止程序(通过按停止按钮),将出现一个消息框,说明测试。如果程序已停止,如何显示消息框?这是一个非常简单的例子。它通常发生在代码更复杂的时候。

2 个答案:

答案 0 :(得分:0)

虽然您希望能够这样做,但是您通常无法断开变量的声明,因为编译器会将其添加到生成的方法的IL的本地,并且它将成为方法堆栈准备的一部分。实际上,到方法运行时,变量已经被声明了。

因此异常提升实际上是第一件事。

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

答案 1 :(得分:0)

你应该以不同的方式看待它,而不是以平价线为基础。

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

实际上,在您“击中”该行之前已经声明了该变量。

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