From cd8fe08e4dd82d7c3e7b56e01fac8c30a00345a4 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Wed, 11 Jan 2012 20:53:25 +0000 Subject: [PATCH] Disable the crash reporter when running lit tests. llvm-svn: 147965 --- llvm/lib/Support/Unix/Signals.inc | 20 ++++++++++++++++++++ llvm/lib/Support/Windows/Signals.inc | 2 +- llvm/utils/lit/lit/TestingConfig.py | 2 +- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/llvm/lib/Support/Unix/Signals.inc b/llvm/lib/Support/Unix/Signals.inc index e286869e775d..75b91eaf1f88 100644 --- a/llvm/lib/Support/Unix/Signals.inc +++ b/llvm/lib/Support/Unix/Signals.inc @@ -30,6 +30,10 @@ #include #include #endif +#if HAVE_MACH_MACH_H +#include +#endif + using namespace llvm; static RETSIGTYPE SignalHandler(int Sig); // defined below. @@ -261,6 +265,22 @@ static void PrintStackTrace(void *) { /// SIGSEGV) is delivered to the process, print a stack trace and then exit. void llvm::sys::PrintStackTraceOnErrorSignal() { AddSignalHandler(PrintStackTrace, 0); + +#if defined(__APPLE__) + // Environment variable to disable any kind of crash dialog. + if (getenv("LLVM_DISABLE_CRASH_REPORT")) { + mach_port_t self = mach_task_self(); + + exception_mask_t mask = EXC_MASK_CRASH; + + kern_return_t ret = task_set_exception_ports(self, + mask, + NULL, + EXCEPTION_STATE_IDENTITY | MACH_EXCEPTION_CODES, + NULL); + (void)ret; + } +#endif } diff --git a/llvm/lib/Support/Windows/Signals.inc b/llvm/lib/Support/Windows/Signals.inc index 3a7e90b38e21..38308f6abd85 100644 --- a/llvm/lib/Support/Windows/Signals.inc +++ b/llvm/lib/Support/Windows/Signals.inc @@ -239,7 +239,7 @@ static void RegisterHandler() { SetConsoleCtrlHandler(LLVMConsoleCtrlHandler, TRUE); // Environment variable to disable any kind of crash dialog. - if (getenv("LLVM_DISABLE_CRT_DEBUG")) { + if (getenv("LLVM_DISABLE_CRASH_REPORT")) { #ifdef _MSC_VER _CrtSetReportHook(CRTReportHook); #endif diff --git a/llvm/utils/lit/lit/TestingConfig.py b/llvm/utils/lit/lit/TestingConfig.py index a92dca8fb1b1..fe05109d7ae4 100644 --- a/llvm/utils/lit/lit/TestingConfig.py +++ b/llvm/utils/lit/lit/TestingConfig.py @@ -16,11 +16,11 @@ class TestingConfig: 'PATH' : os.pathsep.join(litConfig.path + [os.environ.get('PATH','')]), 'SYSTEMROOT' : os.environ.get('SYSTEMROOT',''), + 'LLVM_DISABLE_CRASH_REPORT' : '1', } if sys.platform == 'win32': environment.update({ - 'LLVM_DISABLE_CRT_DEBUG' : '1', 'PATHEXT' : os.environ.get('PATHEXT',''), 'PYTHONUNBUFFERED' : '1', 'TEMP' : os.environ.get('TEMP',''),