问题:
在VS2010的其中一个cpp里设置断点,但是在调试运行时无效,不能进入断点,提示现有版本的cpp文件与原版本不匹配。
查找原因:
1、断点无效是因为目标文件和源文件的更新时间不一致。编译器不认为当前的源文件是目标文件的当前版本。
2、IDE不会关心源文件的编码格式,能读入就足够了。另存为 UNICODE、还是ASCII无非是更新了文件的修改时间。
3、源文件包含的头文件也是源文件的一部分,编译时会插入到#include的位置。
解决办法:
1.从菜单栏的 Tools->Options->Debugging->General
取消 "Require source to exactly match..."项的选择
评价:此方法并未从根本上解决问题,调试程序的时候有可能进入不同版本的源码,埋下了隐患
2.把那个cpp文件用记事本打开,另存为unicode格式,再重新编译,最后问题解决
3.全选cpp文件内容,打开“编辑”菜单——>高级——>设置选定内容的格式(Ctrl+K,Ctrl+F),重新编译