什么可能导致ASP.NET在调试中跳过行?

时间:2009-04-29 14:05:37

标签: asp.net visual-studio visual-studio-2008 debugging

我之前从未遇到过此问题,但最近我重新安装了我的计算机,并且Visual Studio在ASP.NET站点的调试中表现不佳。

我将visual studio 2008附加到w3wp进程以调试网站。当我使用F10逐行调试方法时,有时visual studio会决定它会持续到遇到断点......这几乎就像我按F5让它继续,但是我按下F10。例如,如果方法调用被多次调用并且在开头有一个断点,而我在方法内逐行调试,有时执行将在开始时继续到断点,没有明显的原因所以我失去了所有的调试...

以前有人遇到过这个问题吗?

谢谢,

11 个答案:

答案 0 :(得分:7)

我有同样的问题,每当我按下步入或步进它继续执行就像我按下F5一样。 只有在我想要评估的每一行都设置了一个断点时,调试才有效。 除了我和海报之外还有其他人经历过这个吗?

我已经尝试过重新安装VS而且一切都没有帮助。 此外,调试确实可以在其他一些项目中运行,特定的WinForms项目,当我按下步骤进入webservice调用并“附加”时,调试仍然可以正常工作。


好的,更新...... 我发现我的问题在于编译中的优化。 我在调试配置中打开了优化。

确保取消选中所有项目及其参考资料的调试配置。

还可以尝试:http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/f3fcb4fb-8a08-4fa0-8d58-9ed6f3eb1193

答案 1 :(得分:6)

此问题的修补程序位于:http://code.msdn.microsoft.com/KB957912/Release/ProjectReleases.aspx?ReleaseId=1796

KB957912 - Visual Studio 2008 SP1调试和断点的更新

答案 2 :(得分:3)

Cehck确保您的构建模式设置为Debug not Release。在发布模式下,优化器已打开,代码可以重新排列或删除。从实际代码的角度来看,你的断点可能毫无意义。

答案 3 :(得分:3)

您可能正在调试具有过期PDB文件的程序集,或者代码已更改且未重新编译。

在任何情况下,听起来你之间都存在不匹配:

  • DLL
  • PDB

(正如另一个人所说,确保你在Debug中构建,而不是Release)。

答案 4 :(得分:1)

这几乎听起来就像你在调试时得到的行为,在并行执行多个线程或请求时,或者如果你的方法进行递归调用。你确定这不是会发生什么吗?

答案 5 :(得分:1)

重建计算机后我遇到了同样的问题。在寻找答案后,我找到了这个帖子。对我来说,解决方案是在MSDN上找到的修补程序,由此线程中的用户注明。

http://code.msdn.microsoft.com/KB957912/Release/ProjectReleases.aspx?ReleaseId=1796

- 值得注意的讨论 -

MSDN也有一个很棒的话题讨论,这个线程中的用户也会注意到,有一些解决方法和补丁的链接。

social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/f3fcb4fb-8a08-4fa0-8d58-9ed6f3eb1193

我看过一篇文章,其中以下代码行放在Page_Load(...)方法的开头。就个人而言,这对我来说不是一个选择,但是如果你觉得这对你的问题有所帮助并且有效......

Response.Cache.SetCacheability(HttpCacheability.NoCache);

我的设置: - Windows XP专业版 - 奔腾4 3.0GHz超线程 - VS 2008专业版 - .NET Framework 3.5 SP1 - SQL Server 2008 - 开发语言:c#

答案 6 :(得分:0)

你是不是在使用多线程?这可能会导致这种行为。

你在不同的项目中,或仅在一个项目中有这个问题吗?

答案 7 :(得分:0)

逐行调试是F11(Step Into),而不是F10(Step Over)。

Step Over将跳过您调用的任何方法的调试。

答案 8 :(得分:0)

另类思考 - 您是否尝试过使用步入(F11)而不是步骤(F10)。如果您发现方法调用似乎被“跳过”,那么您可能正在执行下一行而没有实际进入它...

答案 9 :(得分:0)

确保您的行结尾一致。 Windows喜欢CR / LF。如果它们不一致,有时它会对它是什么线感到困惑。

答案 10 :(得分:0)

此处找到的解决方法http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/f3fcb4fb-8a08-4fa0-8d58-9ed6f3eb1193

1)打开Visual Studio,但不要打开任何项目。

2)启动任务管理器(Ctrl + Shift + Esc)并导航到“进程”选项卡。

3)右键单击devenv.exe并选择“Set Affinity ...”(此选项仅适用于多处理器或多核计算机)。

4)取消选中除1之外的所有CPU,然后单击OK。

5)打开你的项目并正常调试。

Silverlight工具不能解决问题以及此论坛帖子中提供的其他补丁。这是我发现的唯一可行的解​​决方法。