【发布时间】:2010-12-03 02:41:45
【问题描述】:
我正在开发我的 C# 3.5 ASP.NET MVC Web 应用程序,就像我每天整天都在做的那样。没有做任何聪明的事情,只是调用其他方法的类的标准方法。
我构建了我的项目,在 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() 的地方甚至更远的地方。
【问题讨论】:
标签: visual-studio-2008 debugging