I have a Windows application written in C++ that occasionally evaporates. I use the word evaporate because there is nothing left behind: no ‘we’re sorry’ message from Windows, no crash dump from the Dr. Watson facility…
On the one occasion the crash occurred under the debugger, the debugger did not break—it showed the application still running. When I manually paused execution, I found that my process no longer had any threads.
How can I capture the reason this process is terminating?
You could try using the adplus utility in the windows debugging tool package.
The auto dump tool provides mini dumps for exceptions and a full dump if the application crashes.