Troubleshooting this type of problem can be a real challenge... particularly when you are not familiar with the code base.
Consider using the Application Verifier in conjunction with the Visual Studio debugger.
- Start Visual Studio and compile your application
- Start the application Verifier utility.
File
=>Add Application
- Select the appropriate
Tests
(e.g. heaps, exceptions,...) - Use Visual Studio
Debug
to start your application.
When something bad happens... your debugger will stop. This should give you a pretty good idea of the source of the problem.
Also, it might help to load the missing symbols before starting your test. In Visual Studio 2012, you can do this by:
Debug
=> Options and Settings
=> Debugging
=> Symbols
=> Load all symbols
.
Good luck!
REFERENCES
- MSDN: "Application Verifier" article
- Download: Application Verifier
- Previously this application was available as a separate download: here
- This download is no longer available.
- The application is now included with the Windows SDK. (previously known as Platfrom SDK)
- Be mindful that you may have two versions installed:
C:\Windows\SysWOW64\appverif.exe
[32 bit version]C:\Windows\System32\appverif.exe
[64 bit version]
- Previously this application was available as a separate download: here
- TechNet: Two Minute Drill: Application Verifier
UPDATE: July 2015
When you are done, be sure to disable the AppVerfier checks that you enabled... otherwise you may experience some unexpected side-effects 6 months down the road when you have forgotten about AppVerifier.