title: Under what circumstances are C++ destructors not going to be called?
body: <p>I know that my destructors are called on normal unwind of stack and when exceptions are thrown, but not when exit() is called.</p>
  
  <p>Are there any other cases where my destructors are not going to get called?  What about signals such as SIGINT or SIGSEGV?  I presume that for SIGSEGV, they are not called, but for SIGNINT they are, how do I know which signals will unwind the stack?</p>
  
  <p>Are there any other circumstances where they will not be called?</p>