Visual studio 2008 Visual studio 2008疯狂调试器跳过
我正在开发我的C#3.5 ASP.NET MVC web应用程序,就像我每天做的一样。没有做任何聪明的事情,只是调用其他方法的类上的标准方法 我构建了我的项目,在Chrome中启动了一个URL,并得到了我期望的响应。我将调试器附加到Visual studio 2008 Visual studio 2008疯狂调试器跳过,visual-studio-2008,debugging,Visual Studio 2008,Debugging,我正在开发我的C#3.5 ASP.NET MVC web应用程序,就像我每天做的一样。没有做任何聪明的事情,只是调用其他方法的类上的标准方法 我构建了我的项目,在Chrome中启动了一个URL,并得到了我期望的响应。我将调试器附加到w3wp.exe,在Chrome中设置断点和f5。正如我所期望的那样,调试器在断点处停止 我点击f11单步遍历代码,它将移动到下一行/部分行,执行几次,它将随机跳到执行路径中的任意行 它跳转到的行是一个本应该执行的行,它不会跳转到任何旧的行,它只是决定忽略中间的一整串
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()的地方,或者更远的地方。听起来像是在尝试逐步通过一个经过优化的二进制文件。优化器可以做很多使调试变得困难的事情,包括但不限于:
- 重新排序语句
- 内联函数
- (通常为C:\windows\Microsoft.NET\Framework\v2.0.50727\ASP.NET临时文件)
- 您可能需要首先在命令提示符下运行“iisreset/stop”,然后使用iisreset/start重新启用
- 不确定这是否有帮助。我以前遇到过相关程序集中编译的代码与调试器认为的不匹配的问题。我解决问题的方法是首先关闭VS,然后重新启动并重新加载项目,然后对解决方案进行完整重建。然后从debug->release或release->debug更改构建模式,并执行最后一次重建。老实说,我从来都不知道是什么原因造成的。只有偶尔才会发生。您尝试过清洗溶液吗?
-(项目文件夹中的bin和obj文件夹) 是否从临时asp.net文件文件夹中删除文件
做了所有这些,杰夫的建议似乎解决了问题,谢谢做了所有这些,Atom的建议似乎解决了问题,谢谢