我正在开发C# 3.5 ASP.NET MVC Web应用程序,这和我一直以来的工作都差不多。我的做法很常规,就是通过类上的标准方法调用其他方法。
我构建项目后,在Chrome浏览器中输入URL,得到了我预期的响应。我将调试器连接到"w3wp.exe",设置一个断点,然后在Chrome中按f5。调试器会在我预料的断点处停下来。
当我按f11逐步执行代码时,它会移动到下一行/部分行,但有时会随意跳转到执行路径上的任意一行!
它跳跃的那一行本来应该被执行,而不是跳到乱七八糟的行。它只是决定跳过其中的一整个内容块。
我从未见过这种情况,我该如何调试并搞清楚发生了什么?
有段时间我认为可能是Chrome发起了两个请求,而调试器并没有真正跳过,只是在请求线程之间切换,看起来像是跳来跳去的。但实际上不是这样的!如果我在每一行上都设置断点,则可以部分地防止这种情况,但是接下来还是会遇到类似问题。
我构建项目后,在Chrome浏览器中输入URL,得到了我预期的响应。我将调试器连接到"w3wp.exe",设置一个断点,然后在Chrome中按f5。调试器会在我预料的断点处停下来。
当我按f11逐步执行代码时,它会移动到下一行/部分行,但有时会随意跳转到执行路径上的任意一行!
它跳跃的那一行本来应该被执行,而不是跳到乱七八糟的行。它只是决定跳过其中的一整个内容块。
我从未见过这种情况,我该如何调试并搞清楚发生了什么?
有段时间我认为可能是Chrome发起了两个请求,而调试器并没有真正跳过,只是在请求线程之间切换,看起来像是跳来跳去的。但实际上不是这样的!如果我在每一行上都设置断点,则可以部分地防止这种情况,但是接下来还是会遇到类似问题。
1. public string Method()
2. {
3. string s;
4. s = OtherMethod();
5. return s;
6.
7. }
我观察到的行为(在上面每一行设置了断点)是1,2,3,4,5,6,7(也就是说它不会进入OtherMethod()
)。
我看到的其他行为是1,2,3,然后就结束了,回到调用Method()
的地方或者更远的地方。