January 11, 2008
I have a multi-threaded Windows app. Occasionally, it crashes silently: the GUI abruptly disappears, no "blue screen of death" or equivalent. Some of the worker threads (created in DLLs) continue to run, and the DLLs remain loaded.
This is not a D issue in this case (it's a C++ app), yet I've seen this behaviour in D in the past.
I know that uncaught Windows Structured Exceptions can cause this type of crash; calling exit(1) does the same thing.
Is there anything else which can do this?

I've been fighting this bug for days; I've never had so much trouble with a bug before. Any tips would be greatly appreciated.
January 12, 2008
Don Clugston wrote:
> I have a multi-threaded Windows app. Occasionally, it crashes silently: the GUI abruptly disappears, no "blue screen of death" or equivalent. Some of the worker threads (created in DLLs) continue to run, and the DLLs remain loaded.
> This is not a D issue in this case (it's a C++ app), yet I've seen this behaviour in D in the past.
> I know that uncaught Windows Structured Exceptions can cause this type of crash; calling exit(1) does the same thing.
> Is there anything else which can do this?
> 
> I've been fighting this bug for days; I've never had so much trouble with a bug before. Any tips would be greatly appreciated.


I've seen silent crashes in Windows that were stack overflow errors caused by infinite looping of a series of function calls. However, it was not a multi-threaded app, and it was easy to see the problem when run through the debugger.