我正在运行带有 SP1 的 Visual Studio 2008。当我调试应用程序时,它会跳过我的断点。
例如,我有两行代码,每行调用一个方法。我将在两条线上都设置一个断点。我会运行一次,它会在第一个断点处停止,但不会在下一个断点处停止。我将再次运行它,它会击中第二个,而不是第一个。
我试图清理解决方案并重建。
我在解决方案中有多个项目。
我正在运行带有 SP1 的 Visual Studio 2008。当我调试应用程序时,它会跳过我的断点。
例如,我有两行代码,每行调用一个方法。我将在两条线上都设置一个断点。我会运行一次,它会在第一个断点处停止,但不会在下一个断点处停止。我将再次运行它,它会击中第二个,而不是第一个。
我试图清理解决方案并重建。
我在解决方案中有多个项目。
您的符号文件(.pdb) 可能与您的源代码不同步。这种情况的一个常见症状是:
调试时,您永远不会看到调试指针停在空白行上,这表明您在某处存在符号/源不匹配。
这种不匹配也可能导致断点被跳过,就像你看到的那样,但是清理解决方案通常会修复它(听起来你已经尝试过了)。
另一个选项(正如其他人所建议的那样)是您没有构建调试配置。虽然可以调试 Release 版本,但代码经过显着优化,这会使调试器行为异常,例如
另一件需要注意的重要事情是,不能在每一行代码上都设置断点。例如,如果您的代码只有一个变量初始化:
long numObjects;
断点通常不会正确设置(尽管它通常会移动到“真实”代码的下一行)。但是,如果您的代码行初始化变量:
long numObjects = 5;
可以设置断点。
尝试删除该项目的 .SUO 文件,然后重新构建。
确保您正在使用调试配置构建应用程序。
假设符号加载不是问题,您可以在方法本身上放置一个 BP,并验证它确实被调用了两次(通过检查调用堆栈)。
我遇到了这个问题,不得不安装一个修补程序。有关详细信息,请参阅http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/f3fcb4fb-8a08-4fa0-8d58-9ed6f3eb1193
我在使用 MS Visual Studio 2008 SP1 时遇到了同样的问题。PDB 文件匹配可执行文件,所以这不是问题。
问题是Visual Assist
。我在“工具|加载项管理器”中将其关闭,之后跳过断点就没有问题了。因此,请关闭 Visual Studio 中的所有加载项并安装最新的 SP(现在是 SP1)。
除了上述方法之外,我还遇到了另外几种没有命中断点的情况:
trunk
和branch
目录交换并且VS在另一个目录中打开文件时,这让我感到困惑。mspdbsrv.exe
仍以某种方式附加到它,有时可能会发生这种情况,因此请检查您的进程列表。重新启动 Visual Studio 通常可以解决此问题。我在 VS 2008 中遇到了同样的问题,并尝试了大约 1 小时的所有操作,但没有帮助。
最后尝试在没有管理员权限的情况下运行 VS,然后清理解决方案-> 重建解决方案并运行良好。
不喜欢 Win 7 上的 VS
此外,删除 VS 可执行文件在兼容模式下运行可以解决问题。
我遇到了同样的问题,安装 VS 2010 SP1 解决了这个问题。我在 SQL 2008 中破坏了 Intellisense 的副作用,您可以在此处阅读:Sql Server 2008 R2 Management Studio - no Intellisense
如果断点没有显示为实心红色气泡,而是显示为红色圆圈,则它被禁用。如果它是带有黄色小警告标志的红色圆圈,则您所附加的进程尚未加载该模式的符号。确保您尝试调试正确类型的代码(托管/本机/T-SQL/脚本)。
我猜您将项目更改为优化代码,因此没有可用的调试信息(包括使用断点的能力)。
要更正此问题:打开您的项目,单击菜单->项目->(您的项目)属性...,单击编译选项卡,单击高级编译选项,然后: - 取消选择“启用优化” - 在生成调试信息列表中,选择“完整”。- 单击确定,关闭并保存所有内容。现在应该可以工作了。
生产效率>
对于网站,如果 MSVS 的单独实例正在运行同一网站,则可能会发生这种情况。
只需停止原始实例或停止 IIS Express。
MSVS 似乎启动了第二个网站,而没有抱怨在同一端口上运行的预先存在的网站。可能浏览器中显示的页面实际上是第一个网站。