基本确认是VS2005的一个bug."there is no source code available for the current location"似乎是个很经典的问题, 网上能搜到很多相关文章. 我这次碰到的只能归结为bug.现象很简单: 上午还调试得好好的, 到下午就调试不进去了, 并且只是工程中的其中一个文件, 其他文件都能正常调试. 通过和版本库中上个一版本进行比较, 最终确定问题出在这一行代码上:
TRACE3(_T("Matching %d: %s - %s\n"), i+1, pszMsg1, pszMsg2);
随便做以下任何一个改动, 就又能调试进去了:
1.把这行注释掉(这招比较赖皮, 不算)
2.把TRACE3前面的tab去掉几个,或者增加几个, 或者多按几个空格
3.把这一行代码折下行,折成两行因此, 严重倾向于认为这是VS调试器的一个BUG, 或者是编译器的BUG?(根本生成调试信息就生成错了)环境: VS2005 Team Suite, 打了全部补丁包