繁体   English   中英

Visual Studio 2008 疯狂的调试器跳过

[英]Visual studio 2008 crazy debugger skipping

我正在开发我的 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() 的地方,甚至更远的地方。

您是否尝试过清洁溶液?
- (项目文件夹中的 bin 和 obj 文件夹)

从临时 asp.net 文件文件夹中删除文件?

  • (通常是 C:\\windows\\Microsoft.NET\\Framework\\v2.0.50727\\Temporary ASP.NET Files)
  • 您可能需要先在命令提示符下运行“iisreset /stop”,然后使用 iisreset /start 重新启用

嘿,您现在可能已经找到了解决方法,但很多人(我就是其中之一)仍在为此苦苦挣扎。 这是 VS 2008 问题,应该应用此修复程序:

http://support.microsoft.com/?scid=kb%3Ben-us%3B957912&x=9&y=14

不确定这是否会有所帮助。 在相关程序集中的编译代码与调试器认为我拥有的不匹配之前,我遇到过问题。 我总是解决它的方法是首先关闭VS,然后重新启动并重新加载项目,然后完全重建解决方案。 然后将构建模式从 debug->release 或 release->debug 更改为最后一次重建。 老实说,我从来没有弄清楚是什么原因造成的。 只是偶尔发生。

听起来您正在尝试逐步执行已优化的二进制文件。 优化器可以做很多使调试变得困难的事情,包括但不限于:

  • 重新排序语句
  • 内联函数

我在 2.0 中看到过类似的东西,当我不能确保我的浏览器缓存清晰时。

打开拆卸,看看你的步进是否更有意义。 如果您确定您没有在线程之间跳转,那么编译器可能已经确定您的某些代码不够重要而无法单步执行(即,什么都不做)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM