Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In Windows, does "The exception unknown software exception (0x40000015) occurred in the application" mean STATUS_FATAL_APP_EXIT?

At shutdown (initiated by an UPS) my application crashes and a messagebox appears.

The text in the messagebox is "The exception unknown software exception (0x40000015) occurred in the application".

I browsed ntstatus.h and found STATUS_FATAL_APP_EXIT? If it were right, why the message box say "unknown software exception"?

like image 926
Alessandro Jacopson Avatar asked Feb 25 '11 09:02

Alessandro Jacopson


People also ask

How do I fix the exception unknown software exception 0x40000015?

One of the main reasons the error occurs is that the system files are corrupted. Here, running the System File Checker and automatically repairing corrupt files can help to fix Error 0x40000015 in Windows: Type cmd in the Windows search bar. Right-click on Command Prompt and select Run as administrator.

How do you fix the exception unknown software 0xc06d007e occurred in the application at location?

If the error message doesn't come up, then you have to find the startup program or service that is clashing with the app and triggering the Unknown Software Exception (0xc06d007e) error message. To isolate the responsible program, open the System Configuration dialog, enable a single startup, and then restart your PC.


1 Answers

Yes, 0x40000015 means STATUS_FATAL_APP_EXIT. Your app causes an unhandled runtime exception during shutdown. Some runtime exceptions are actually handled if you don't handle them yourself, and some of these default handlers call abort(). By default, abort calls:

_call_reportfault(_CRT_DEBUGGER_ABORT, STATUS_FATAL_APP_EXIT, EXCEPTION_NONCONTINUABLE);

abort is a generic termination - it doesn't know what specific exception prompted it to be called, hence the generic 'unknown software exception' message.

One path to abort is via the _purecall exception - calling an unimplemented pure virtual call.

Gleaned from purevirt.c and abort.c in the Visual Studio\VC\crt\src directory.


MSDN has documentation on overriding the default pure call exception handler.

Here are some related questions:

  • Capturing R6025 pure virtual call
  • Where do "pure virtual function call" crashes come from?
  • Shutdown exception handling for Win32/C++
like image 77
sean e Avatar answered Sep 21 '22 06:09

sean e