Visual studio 2008 为什么VisualStudio2008会跳过我的断点?

Visual studio 2008 为什么VisualStudio2008会跳过我的断点?,visual-studio-2008,breakpoints,Visual Studio 2008,Breakpoints,我正在用SP1运行VisualStudio2008。调试应用程序时,它将跳过断点 例如,我有两行代码,每行调用一个方法。我将在两行上都设置一个断点。我将运行它一次,它将在第一个断点停止,但不会在下一个断点停止。我会再次运行它,它将击中第二个,而不是第一个 我已尝试清理解决方案并进行重建 我的解决方案中确实有多个项目。尝试删除该项目的.SUO文件,然后重新生成。假设符号加载不是问题,您可以在方法本身上放置一个BP,并验证它确实被调用了两次(通过检查调用堆栈).确保您正在使用调试配置构建应用程序。如

我正在用SP1运行VisualStudio2008。调试应用程序时,它将跳过断点

例如,我有两行代码,每行调用一个方法。我将在两行上都设置一个断点。我将运行它一次,它将在第一个断点停止,但不会在下一个断点停止。我会再次运行它,它将击中第二个,而不是第一个

我已尝试清理解决方案并进行重建


我的解决方案中确实有多个项目。

尝试删除该项目的.SUO文件,然后重新生成。

假设符号加载不是问题,您可以在方法本身上放置一个BP,并验证它确实被调用了两次(通过检查调用堆栈).

确保您正在使用调试配置构建应用程序。

如果断点没有显示为红色实心气泡,而是显示为红色圆圈,则它将被禁用。如果是带有黄色警告标志的红色圆圈,则您所连接的进程尚未加载该模式的符号。确保您正在尝试调试正确类型的代码(托管/本机/T-SQL/脚本)。

符号文件不兼容 您的符号文件(.pdb)可能与源代码不同步。这种情况的一个常见症状是:

  • 在代码行上的断点处停止
  • 逐步完成代码
  • 看到调试指针停在代码的空行处
调试时,您永远不会看到调试指针停在一个空行上,这表明您在某个地方有符号/源不匹配

这种不匹配也可能导致像您看到的那样跳过断点,但是清理解决方案通常会修复它(听起来您已经尝试过了)

构建配置 另一个选项(如其他人所建议的)是,您没有构建调试配置。虽然可以调试发布版本,但代码得到了显著优化,这会使调试器的行为异常,例如

  • 单步执行一个条件(即if块)会使if和else案例看起来都在运行
  • 有些代码是完全优化的,你不能破坏它们
你想破坏什么? 另一个需要注意的重要事项是,不能在每一行代码上设置断点。例如,如果您的代码只有一个变量初始化:

long numObjects;
断点通常不会正确设置(尽管它通常会移动到下一行“实际”代码)。但是,如果您的代码行初始化了变量:

long numObjects = 5;

断点可以设置。

我遇到了这个问题,必须安装修补程序。有关详细信息,请参见

我在MS Visual Studio 2008 SP1中遇到了相同的问题。PDB文件与可执行文件匹配,所以这不是问题


问题是
视觉辅助
。我在“工具|加载项管理器”中关闭了它,之后跳过断点就没有问题了。因此关闭Visual Studio中的所有加载项并安装最新的SP(现在是SP1)

除了上述方法之外,我还遇到了另外两种不命中断点的情况:

  • 该源来自不同的目录树。如果重命名了目录,则会发生这种情况,因为路径已硬编码到pdb文件中。当我交换了一个
    主干
    分支
    目录,并打开了另一个目录中的文件时,我发现了这一点
  • 如果exe仍在后台运行,如果应用程序没有干净地退出或
    mspdbsrv.exe仍然附加在它上,有时会发生这种情况,请检查您的进程列表。重新启动VisualStudio通常会解决此问题

在VS 2008中,我也遇到了同样的问题,花了大约1个小时尝试了所有方法,但都没有效果

最后尝试在没有管理员权限的情况下运行VS,然后清理解决方案->重建解决方案,效果良好


不喜欢Win 7上的VS

同样,删除VS可执行文件的兼容模式下运行可以解决问题

我也遇到了同样的问题,安装VS 2010 SP1解决了这个问题。我在SQL 2008中破坏了Intellisense的一个副作用,您可以在这里阅读:

我猜您将项目更改为优化代码,因此没有可用的调试信息(包括使用断点的能力)

要更正此问题:打开您的项目,请单击菜单->项目->(您的项目)属性…,单击编译选项卡,单击高级编译选项,然后: -取消选择“启用优化” -在生成调试信息列表中,选择“完整”。 -单击“确定”,关闭并保存所有内容。 现在应该可以工作了

MFR>

对于网站,如果MSV的一个单独实例正在运行同一个网站,则可能发生这种情况

只需停止原始实例或停止IIS Express即可


MSV似乎启动了第二个网站,但没有抱怨在同一端口上运行的先前存在的网站。可能浏览器中显示的页面实际上是第一个网站。

并且您的调试配置将/Od作为优化(这几乎总是这样,但有时会因意外或其他原因而更改)。这些建议对我很有效(而其他任何建议都不起作用)!谢谢大家!@我并不感到惊讶;发生这种情况的原因有很多,我的解决方案解决了一个特定的问题。@GeorgeStocker是的。。。我正在努力解决这个问题: