Why is ntdll.dll crashing my c++ executable?

user1789769 picture user1789769 · Nov 14, 2012 · Viewed 80.3k times · Source

I am having trouble to get a Visual C++ executable to work, the app crashes , here is what I have seen in the event viewer.

Faulting application name: submit.exe, version: 0.0.0.0, time stamp: 0x50a3cce7
Faulting module name: ntdll.dll, version: 6.1.7601.17514, time stamp: 0x4ce7ba58
Exception code: 0xc0000374
Fault offset: 0x000ce653
Faulting process id: 0x8fc
Faulting application start time: 0x01cdc2a3da4f2997
Faulting application path: c:\submit.exe
Faulting module path: C:\Windows\SysWOW64\ntdll.dll
Report Id: 1813823a-2e97-11e2-8675-000c29229191

The executable compiled in old versions of Visual Studio work but I get the error with the executable compiled with newer VS like 2008 or 2010. please advice

Answer

Pressacco picture Pressacco · Mar 27, 2013

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.

  1. Start Visual Studio and compile your application
  2. Start the application Verifier utility.
  3. File => Add Application
  4. Select the appropriate Tests (e.g. heaps, exceptions,...)
  5. 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

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.