我正在运行带有SP1的Visual Studio 2008.当我调试应用程序时,它将跳过我的断点.
例如,我有两行代码,每行代码调用一个方法.我会在两条线上都设一个断点.我会跑一次,它会在第一个断点停止,但不会在下一个断点停止.我会再次运行它,它会击中第二个,而不是第一个.
我试图清理解决方案并重建.
我在解决方案中有多个项目.
您的符号文件(.pdb)可能与源代码不同步.常见的症状是:
在一行代码上的断点处停止
单步执行代码
看到调试指针停在一行空白的代码中
在调试时,你永远不应该看到调试指针停在空行上,这表明你的符号/源不匹配.
这种不匹配也可能导致像你看到的那样跳过断点,但是清理解决方案通常会修复它(听起来你已经尝试过了).
另一个选项(由其他人建议)是您没有构建调试配置.虽然可以调试Release版本,但代码已经过显着优化,这可能会使调试器行为异常,例如
单步执行条件(即if块)可以使if和else情况都运行
一些代码已完全优化,你不能打破它们
另一个需要注意的重要事项是,无法在每行代码上设置断点.例如,如果您的代码只有变量初始化:
long numObjects;
通常不会正确设置断点(尽管它通常会移动到下一行"真实"代码).但是,如果您的代码行初始化变量:
long numObjects = 5;
断点可以设置.
尝试删除该项目的.SUO文件,然后重建.