在vs release模式下进行断点调试时,修改了源文件内容,并继续调试,导致出现断点失效问题。移动鼠标至断点,出现“当前不会命中断点。源代码与原始版本不同”。
解决方法如下所示:
1. 使用vs清理解决方案,或者清理项目,然后将调试的相关工程重新编译一次;
2. 若方法1没能解决问题,那么尝试格式化代码,通过重新格式化出问题的源文件亦可以解决。在 vs中 全选文件->编辑->高级->设置选中内容格式->重新编译;
3. 结束vs,手动把bin目录删除掉,重新打开vs;
4. 将目标文件用notepad或记事本打开,另存为Unicode格式,覆盖原来的文件;
5. 源代码与原始版本不同,在断点选项里设置允许源代码与原始版本不同。这个是针对单个断点进行设置。若对所有的断点 进行设置,则要在“工具”—〉“选项”—〉“调试”—〉“要求源文件与原始版本完成匹配”去掉勾。
本文使用的方法1,各个工程重新编译,即解决问题。因为有工程代码被修改了,但是没有重新生成新的Dll,而调试的时候又需要进入到这个Dll的特定代码里面,所以断点失效。