Causes of non reproducible crashes
One of the most frustrating thing in software development is to debug crashes that can not be reproduced in a deterministic way. A big part of these crashes are null pointer exceptions or illegal access type i.e. an object is not in the place where it is supposed to be.

Modern software development tools support you by some debugging options for example "zombie objects on OS-X & iOS, putting some watchdog process around yours or add some hooks in the memory management system of your framework. However sometimes these does not help you and you have to work really hard to find the cause of the crash.

I was thinking that it would be nice to collect all possible theoretical cause of indeterministic crashes that they could give you an idea what to look for if you are out of guesses while fighting with such problems. I could come up with the following examples:

 - concurring threads modifying the same not protected object putting it in an inconsistent state 
 - objects deleted too early also by some automatic memory management tool (for example auto releasing in OS-X & iOS)
 - event handlers released (or not created!) before the event provider talks to them

Do you have any more idea for such a generic causes?
Causes of non reproducible crashes
===

One of the most frustrating thing in software development is to debug crashes that can not be reproduced in a deterministic way. A big part of these crashes are null pointer exceptions or illegal access type i.e. an object is not in the place where it is supposed to be.

Modern software development tools support you by some debugging options for example "zombie objects on OS-X & iOS, putting some watchdog process around yours or add some hooks in the memory management system of your framework. However sometimes these does not help you and you have to work really hard to find the cause of the crash.

I was thinking that it would be nice to collect all possible theoretical cause of indeterministic crashes that they could give you an idea what to look for if you are out of guesses while fighting with such problems. I could come up with the following examples:

 - concurring threads modifying the same not protected object putting it in an inconsistent state 
 - objects deleted too early also by some automatic memory management tool (for example auto releasing in OS-X & iOS)
 - event handlers released (or not created!) before the event provider talks to them

Do you have any more idea for such a generic causes?