The source file is different from when the module was built.

*******************************

Source file: D:\Projects\StereoMatch\stereomatcher.cpp

Module: D:\Projects\StereoMatch\Debug\StereoMatch.exe

Process: [4024] StereoMatch.exe

The source file is different from when the module was built. Would you like the debugger to use it anyway?

*******************************

***********************************

At StereoMatcher.cpp, line 166 (‘ComputeCorrespondence()’, line 128)

The breakpoint will not currently be hit. The source code is different from the original version.

To allow the breakpoint to be hit when the source code is different, right-click on the breakpoint, choose ‘Location …’, and turn on ‘Allow the source code to be different from the original version.

To allow this for all breakpoints, disable the option ‘Require source files to exactly match the original version’ under Tools, Options, Debugging, General’

***********************************

When the compiler generates debug information, it will generate a hash (AFAICT, only MD5 is supported at this point) over all contributing source files (i.e. the .cpp file and all #include’d files). This information along with the full path of the files on the build machine eventually end up in the PDB file.

Now when the debugger tries to obtain a source file, it gets the full path name from the PDB file does some path-based mapping and opens the file. Then it generates the hash and check if it matches the one saved in the PDB.

In your case, it does not and that suggests your source file is outdated. You can force the debugger to ignore such mismatches, but it is obviously a feature designed to prevent you from looking at outdated source files while debugging.

Are you quite certain sources and debug information are from the same version (obviously you could just rebuild on your box to make sure)? May it works if you…

Delete all the files in the folders:

..\bin\Debug , ..\bin\Release, ..\obj\Debug , ..\obj\Release, …obj\Debug\Refactor

For your primary program and the aditional projects in the solution and recompile.

Regards.

If there are any static libraries that you link to, these might be causing the problems. Do you see the problem for all files? Are these files included from precompiled source files (e.g. in static libs)?

There’s the dia2dump sample, that might help you understand the problem. You need to build it first. Once you have, you can dump the hash for some of the conflicting files and compare against the real MD5 hash of the source files.

Excerpt from http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1927472&SiteID=1

Update 2011-02-10

Today while using VS2010 I once again encountered this problem. After running clean rebuild and code analysis several times, breakpoints still could not be hit. It was driving me crazy, I needed a permanent fix. Although disabling ‘Require exact source matches’ in the debug options allowed breakpoints to hit, it felt unsatisfactory and misleading, since the source really was consistent with the build. Finally I discovered that deleting the .suo file under the project folder solved the issue. Truly baffling!

Powered by Zoundry Raven

博主友情提示:

如您在评论中需要提及如QQ号、电子邮件地址或其他隐私敏感信息,欢迎使用>>博主专用加密工具v3<<处理后发布,原文只有博主可以看到。