I recently moved a large C++ project from VS2005/XP to VS2012/Win7. Lots of great new stuff, but there is one problem with the VS2012 debugger that is not only very annoying, but also very time-consuming. The issue is that, if your code has an exception, the debugger will not break at the line that caused the exception. It will break instead at completely different place. To give you an example, here is an obvious error:
Line 500, File.c: Object = NULL;
Line 501, File.c: if (Object->Member==something) {...}
With VS2005, the debugger will report an exception, and break at Line 501, clearly showing you where the error occurred.
With VS2012, the debugger will also report the exception, but it will break in some other place, in some other translation unit, which may tangentially use "Object". To make it worse, the call stack window shows a series of frames and calls that do not make sense. This makes it nearly impossible to use the debugger to ferret out bugs like the one above.
Is there some simple setting I am now aware of, to make things behave? Is it related to the fact that on Win7 everything is multithreaded by default? Has anyone else encountered and fixed that problem?
Thanks!!!!