1. 楔子
今天有同事问起来此类问题,所以写下来。
2. 症状
在vs中难免遇到调试中断失效的时候,如下图。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LcZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TN3kTNyQzM4EzNykDM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
同时还伴随类似的提示
2.原因分析
个人觉得是windows为了避免重复编译没有改变的文件,所以给文件弄个类似摘要信息例如MD5什么的,但是有时候CPP变化的时候,这个摘要信息,有时候不变,尤其是加了几个空行啊什么之类的,容易出现此类问题。
3.解决方法
曾经也在网上找过很多解决方法,推荐方法4,也是个人觉得比较靠谱的方法。
方法1:
选择菜单中的格式化CPP或者.h文件,规范格式什么的。这个有时候可以起到作用,但是有时候不行。
方法2:
清除缓存的debug和release还有sdf文件什么的,几乎没有起过作用。
方法3:
按着vs的提示什么允许源代码不同,反正我觉得这事比较扯,还是别试这个方法比较好。
方法4:
修改一下cpp文件,要是实在没啥修改的,就加上几行废代码,比如什么 源代码是 a =b;变成 int a = 0 ; a = b;什么的这样改变了CPP文件,一般就可以了。