我之前从未遇到过此问题,但最近我重新安装了我的计算机,并且Visual Studio在ASP.NET站点的调试中表现不佳。
我将visual studio 2008附加到w3wp进程以调试网站。当我使用F10逐行调试方法时,有时visual studio会决定它会持续到遇到断点......这几乎就像我按F5让它继续,但是我按下F10。例如,如果方法调用被多次调用并且在开头有一个断点,而我在方法内逐行调试,有时执行将在开始时继续到断点,没有明显的原因所以我失去了所有的调试...
以前有人遇到过这个问题吗?
谢谢,
答案 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文件的程序集,或者代码已更改且未重新编译。
在任何情况下,听起来你之间都存在不匹配:
(正如另一个人所说,确保你在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工具不能解决问题以及此论坛帖子中提供的其他补丁。这是我发现的唯一可行的解决方法。