diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 19:26:05 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 19:26:05 +0000 |
| commit | 14f1b3e8826ce43b978db93a62d1166055db5394 (patch) | |
| tree | 0a00ad8d3498783fe0193f3b656bca17c4c8697d /source/Initialization/SystemInitializerCommon.cpp | |
| parent | 4ee8c119c71a06dcad1e0fecc8c675e480e59337 (diff) | |
Notes
Diffstat (limited to 'source/Initialization/SystemInitializerCommon.cpp')
| -rw-r--r-- | source/Initialization/SystemInitializerCommon.cpp | 130 |
1 files changed, 59 insertions, 71 deletions
diff --git a/source/Initialization/SystemInitializerCommon.cpp b/source/Initialization/SystemInitializerCommon.cpp index 258f9c8872e2..1139955b18a5 100644 --- a/source/Initialization/SystemInitializerCommon.cpp +++ b/source/Initialization/SystemInitializerCommon.cpp @@ -9,10 +9,6 @@ #include "lldb/Initialization/SystemInitializerCommon.h" -#include "lldb/Host/Host.h" -#include "lldb/Host/HostInfo.h" -#include "lldb/Core/Log.h" -#include "lldb/Core/Timer.h" #include "Plugins/Instruction/ARM/EmulateInstructionARM.h" #include "Plugins/Instruction/MIPS/EmulateInstructionMIPS.h" #include "Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h" @@ -21,6 +17,10 @@ #include "Plugins/ObjectFile/ELF/ObjectFileELF.h" #include "Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h" #include "Plugins/Process/gdb-remote/ProcessGDBRemoteLog.h" +#include "lldb/Core/Log.h" +#include "lldb/Core/Timer.h" +#include "lldb/Host/Host.h" +#include "lldb/Host/HostInfo.h" #if defined(__APPLE__) #include "Plugins/ObjectFile/Mach-O/ObjectFileMachO.h" @@ -35,104 +35,92 @@ #include "lldb/Host/windows/windows.h" #endif +#include "llvm/Support/PrettyStackTrace.h" #include "llvm/Support/TargetSelect.h" #include <string> using namespace lldb_private; -static void -fatal_error_handler(void *user_data, const std::string &reason, bool gen_crash_diag) -{ - Host::SetCrashDescription(reason.c_str()); - ::abort(); -} +SystemInitializerCommon::SystemInitializerCommon() {} -SystemInitializerCommon::SystemInitializerCommon() -{ -} +SystemInitializerCommon::~SystemInitializerCommon() {} -SystemInitializerCommon::~SystemInitializerCommon() -{ -} - -void -SystemInitializerCommon::Initialize() -{ +void SystemInitializerCommon::Initialize() { #if defined(_MSC_VER) - const char *disable_crash_dialog_var = getenv("LLDB_DISABLE_CRASH_DIALOG"); - if (disable_crash_dialog_var && llvm::StringRef(disable_crash_dialog_var).equals_lower("true")) - { - // This will prevent Windows from displaying a dialog box requiring user interaction when - // LLDB crashes. This is mostly useful when automating LLDB, for example via the test - // suite, so that a crash in LLDB does not prevent completion of the test suite. - ::SetErrorMode(GetErrorMode() | SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX); + const char *disable_crash_dialog_var = getenv("LLDB_DISABLE_CRASH_DIALOG"); + if (disable_crash_dialog_var && + llvm::StringRef(disable_crash_dialog_var).equals_lower("true")) { + // This will prevent Windows from displaying a dialog box requiring user + // interaction when + // LLDB crashes. This is mostly useful when automating LLDB, for example + // via the test + // suite, so that a crash in LLDB does not prevent completion of the test + // suite. + ::SetErrorMode(GetErrorMode() | SEM_FAILCRITICALERRORS | + SEM_NOGPFAULTERRORBOX); - _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); - _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); - _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); - _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR); - _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR); - _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR); - } + _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); + _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); + _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); + _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR); + _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR); + _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR); + } #endif - Log::Initialize(); - HostInfo::Initialize(); - Timer scoped_timer(__PRETTY_FUNCTION__, __PRETTY_FUNCTION__); - - llvm::install_fatal_error_handler(fatal_error_handler, 0); - - process_gdb_remote::ProcessGDBRemoteLog::Initialize(); + llvm::EnablePrettyStackTrace(); + Log::Initialize(); + HostInfo::Initialize(); + Timer scoped_timer(LLVM_PRETTY_FUNCTION, LLVM_PRETTY_FUNCTION); - // Initialize plug-ins - ObjectContainerBSDArchive::Initialize(); - ObjectFileELF::Initialize(); - ObjectFilePECOFF::Initialize(); + process_gdb_remote::ProcessGDBRemoteLog::Initialize(); - EmulateInstructionARM::Initialize(); - EmulateInstructionMIPS::Initialize(); - EmulateInstructionMIPS64::Initialize(); + // Initialize plug-ins + ObjectContainerBSDArchive::Initialize(); + ObjectFileELF::Initialize(); + ObjectFilePECOFF::Initialize(); - //---------------------------------------------------------------------- - // Apple/Darwin hosted plugins - //---------------------------------------------------------------------- - ObjectContainerUniversalMachO::Initialize(); + EmulateInstructionARM::Initialize(); + EmulateInstructionMIPS::Initialize(); + EmulateInstructionMIPS64::Initialize(); + //---------------------------------------------------------------------- + // Apple/Darwin hosted plugins + //---------------------------------------------------------------------- + ObjectContainerUniversalMachO::Initialize(); #if defined(__APPLE__) - ObjectFileMachO::Initialize(); + ObjectFileMachO::Initialize(); #endif #if defined(__linux__) - static ConstString g_linux_log_name("linux"); - ProcessPOSIXLog::Initialize(g_linux_log_name); + static ConstString g_linux_log_name("linux"); + ProcessPOSIXLog::Initialize(g_linux_log_name); #endif #if defined(_MSC_VER) - ProcessWindowsLog::Initialize(); + ProcessWindowsLog::Initialize(); #endif } -void -SystemInitializerCommon::Terminate() -{ - Timer scoped_timer(__PRETTY_FUNCTION__, __PRETTY_FUNCTION__); - ObjectContainerBSDArchive::Terminate(); - ObjectFileELF::Terminate(); - ObjectFilePECOFF::Terminate(); +void SystemInitializerCommon::Terminate() { + Timer scoped_timer(LLVM_PRETTY_FUNCTION, LLVM_PRETTY_FUNCTION); + ObjectContainerBSDArchive::Terminate(); + ObjectFileELF::Terminate(); + ObjectFilePECOFF::Terminate(); - EmulateInstructionARM::Terminate(); - EmulateInstructionMIPS::Terminate(); - EmulateInstructionMIPS64::Terminate(); + EmulateInstructionARM::Terminate(); + EmulateInstructionMIPS::Terminate(); + EmulateInstructionMIPS64::Terminate(); - ObjectContainerUniversalMachO::Terminate(); + ObjectContainerUniversalMachO::Terminate(); #if defined(__APPLE__) - ObjectFileMachO::Terminate(); + ObjectFileMachO::Terminate(); #endif #if defined(_MSC_VER) - ProcessWindowsLog::Terminate(); + ProcessWindowsLog::Terminate(); #endif - HostInfo::Terminate(); - Log::Terminate(); + HostInfo::Terminate(); + Log::Terminate(); } |
