diff options
-rw-r--r-- | llvm/lib/Support/Windows/Signals.inc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Support/Windows/Signals.inc b/llvm/lib/Support/Windows/Signals.inc index 35ba6f8e1bb..ad740c79a7a 100644 --- a/llvm/lib/Support/Windows/Signals.inc +++ b/llvm/lib/Support/Windows/Signals.inc @@ -279,6 +279,14 @@ void sys::DontRemoveFileOnSignal(StringRef Filename) { /// PrintStackTraceOnErrorSignal - When an error signal (such as SIBABRT or /// SIGSEGV) is delivered to the process, print a stack trace and then exit. void sys::PrintStackTraceOnErrorSignal() { + // Don't pop up any dialog boxes. + // We're already handling writing a "something went wrong" message. + _set_abort_behavior(0, _WRITE_ABORT_MSG); + // Disable Dr. Watson. + _set_abort_behavior(0, _CALL_REPORTFAULT); + // Disable standard error dialog box. + SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX); + RegisterHandler(); LeaveCriticalSection(&CriticalSection); } |