If code in the callchain has set up a structured exception handling frame with __try/__except, exceptions will fire silently, causing code to get killed and execution to mysteriously continue. This can happen if we are called back from another DLL, called from a Windows WM_TIMER callback, or called on a secondary thread. We should consider implementing ASSERT() on Windows with a mechanism as described in: http://www.codeproject.com/KB/debug/DebugBreakAnyway.aspx <rdar://8033688>