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

Cha*_*son 5 breakpoints visual-studio-2008

我正在运行带有SP1的Visual Studio 2008.当我调试应用程序时,它将跳过我的断点.

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

我试图清理解决方案并重建.

我在解决方案中有多个项目.

Leo*_*Hat 17

符号文件不兼容

您的符号文件(.pdb)可能与源代码不同步.常见的症状是:

  • 在一行代码上的断点处停止
  • 单步执行代码
  • 看到调试指针停在一行空白的代码中

在调试时,你永远不应该看到调试指针停在空行上,这表明你的符号/源不匹配.

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

构建配置

另一个选项(由其他人建议)是您没有构建调试配置.虽然可以调试Release版本,但代码已经过显着优化,这可能会使调试器行为异常,例如

  • 单步执行条件(即if块)可以使if和else情况都运行
  • 一些代码已完全优化,你不能打破它们

你想要打破什么?

另一个需要注意的重要事项是,无法在每行代码上设置断点.例如,如果您的代码只有变量初始化:

long numObjects;
Run Code Online (Sandbox Code Playgroud)

通常不会正确设置断点(尽管它通常会移动到下一行"真实"代码).但是,如果您的代码行初始化变量:

long numObjects = 5;
Run Code Online (Sandbox Code Playgroud)

断点可以设置.


Geo*_*ker 6

尝试删除该项目的.SUO文件,然后重建.