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 | |
parent | 4ee8c119c71a06dcad1e0fecc8c675e480e59337 (diff) |
Notes
Diffstat (limited to 'source/Initialization')
-rw-r--r-- | source/Initialization/SystemInitializer.cpp | 8 | ||||
-rw-r--r-- | source/Initialization/SystemInitializerCommon.cpp | 132 | ||||
-rw-r--r-- | source/Initialization/SystemLifetimeManager.cpp | 59 |
3 files changed, 89 insertions, 110 deletions
diff --git a/source/Initialization/SystemInitializer.cpp b/source/Initialization/SystemInitializer.cpp index 5a60c04ba4f32..4a8e10caef9f8 100644 --- a/source/Initialization/SystemInitializer.cpp +++ b/source/Initialization/SystemInitializer.cpp @@ -11,10 +11,6 @@ using namespace lldb_private; -SystemInitializer::SystemInitializer() -{ -} +SystemInitializer::SystemInitializer() {} -SystemInitializer::~SystemInitializer() -{ -} +SystemInitializer::~SystemInitializer() {} diff --git a/source/Initialization/SystemInitializerCommon.cpp b/source/Initialization/SystemInitializerCommon.cpp index 258f9c8872e2b..1139955b18a5f 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); - - _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); - } + 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); + } #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(); } diff --git a/source/Initialization/SystemLifetimeManager.cpp b/source/Initialization/SystemLifetimeManager.cpp index 0f61622b31b02..4d271787833db 100644 --- a/source/Initialization/SystemLifetimeManager.cpp +++ b/source/Initialization/SystemLifetimeManager.cpp @@ -16,43 +16,38 @@ using namespace lldb_private; -SystemLifetimeManager::SystemLifetimeManager() : m_mutex(), m_initialized(false) -{ -} +SystemLifetimeManager::SystemLifetimeManager() + : m_mutex(), m_initialized(false) {} -SystemLifetimeManager::~SystemLifetimeManager() -{ - assert(!m_initialized && "SystemLifetimeManager destroyed without calling Terminate!"); +SystemLifetimeManager::~SystemLifetimeManager() { + assert(!m_initialized && + "SystemLifetimeManager destroyed without calling Terminate!"); } -void -SystemLifetimeManager::Initialize(std::unique_ptr<SystemInitializer> initializer, - LoadPluginCallbackType plugin_callback) -{ - std::lock_guard<std::recursive_mutex> guard(m_mutex); - if (!m_initialized) - { - assert(!m_initializer && - "Attempting to call SystemLifetimeManager::Initialize() when it is already initialized"); - m_initialized = true; - m_initializer = std::move(initializer); - - m_initializer->Initialize(); - Debugger::Initialize(plugin_callback); - } +void SystemLifetimeManager::Initialize( + std::unique_ptr<SystemInitializer> initializer, + LoadPluginCallbackType plugin_callback) { + std::lock_guard<std::recursive_mutex> guard(m_mutex); + if (!m_initialized) { + assert(!m_initializer && "Attempting to call " + "SystemLifetimeManager::Initialize() when it is " + "already initialized"); + m_initialized = true; + m_initializer = std::move(initializer); + + m_initializer->Initialize(); + Debugger::Initialize(plugin_callback); + } } -void -SystemLifetimeManager::Terminate() -{ - std::lock_guard<std::recursive_mutex> guard(m_mutex); +void SystemLifetimeManager::Terminate() { + std::lock_guard<std::recursive_mutex> guard(m_mutex); - if (m_initialized) - { - Debugger::Terminate(); - m_initializer->Terminate(); + if (m_initialized) { + Debugger::Terminate(); + m_initializer->Terminate(); - m_initializer.reset(); - m_initialized = false; - } + m_initializer.reset(); + m_initialized = false; + } } |