反正都1点多了,再发个帖子吧。 帖子里给出了这个问题的一个方法,但并没有找到root cause,如果有知道的朋友,请告诉我。 微软的步伐很快,开发工具一二年就是一个版本,但使用最多最得心应手的还数VC6,感觉从那以后,VS的稳定性差了很多,不是突然卡住,就是表现的莫名其妙。今天一个问题就折腾了大半天,使用VS2010打开一个原来的VC6的项目,是使用MFC写的一个基于对话框的程序,微微修改了下,删除一个没有使用的变量声明,调试就出了状况。在设置断点的地方总是出现 "Breakpoint will not currently be hit. Source code is different from the original version",还算不错的是,提示里也包含了解决方法,在断点的Location设置里,check "Allow the source code to be diffrenet from the original version". 虽然可以工作,但只能说是差强人意,毕竟头痛医头,脚痛医脚是不行的。Root cause在哪里? 上google,原来这是VS的臭名昭著的issue,我不是一个人在战斗,查找解决方案,千奇百怪。做了以下的尝试 1. clean solution; rebuild 2. run devdev as administrator 3. build菜单中的project only-->code analysis 4. delete *.pdb file 5. delebe debug director 6. delete .suo file 7. 在调试的运行下,查看module view,分析程序所加载的symbol,一切正常。 8. ... 加上已经忘掉的动作,这么多尝试,无一成功。看来今天命不好,准备放弃留待日后再说。下面却是见证奇迹的时刻,在关闭VS之前,顺手把一个cpp文件里的#include <math.h>移到了stdafx.h里,按F5进行build,断点竟然成功命中。这可真是让人无语,尝试着把那句话修改回来,结果错误依旧。匪夷所思啊。本文最初发在QQ空间里 http://user.qzone.qq.com/31731705/blog/1297414323
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!