diff options
author | Sean Callanan <scallanan@apple.com> | 2014-08-23 00:47:22 +0000 |
---|---|---|
committer | Sean Callanan <scallanan@apple.com> | 2014-08-23 00:47:22 +0000 |
commit | 0de7ecd34601395f499fa81ad9e9dd2a3b29ac2c (patch) | |
tree | aa9daa1810502dcc0c8240a3fa3e56458de9e2a5 /lldb/source/lldb.cpp | |
parent | 62e9fb9727c10e0b63cffb428eaf1f6ccc3dd581 (diff) | |
download | bcm5719-llvm-0de7ecd34601395f499fa81ad9e9dd2a3b29ac2c.tar.gz bcm5719-llvm-0de7ecd34601395f499fa81ad9e9dd2a3b29ac2c.zip |
Initialize LLVM when LLDB is initialized, and
install a crash handler.
<rdar://problem/18083226>
llvm-svn: 216309
Diffstat (limited to 'lldb/source/lldb.cpp')
-rw-r--r-- | lldb/source/lldb.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/lldb/source/lldb.cpp b/lldb/source/lldb.cpp index 613eaf27b31..cd620b7945b 100644 --- a/lldb/source/lldb.cpp +++ b/lldb/source/lldb.cpp @@ -25,6 +25,7 @@ #include "lldb/Target/Thread.h" #include "llvm/ADT/StringRef.h" +#include "llvm/Support/TargetSelect.h" #include "Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h" #include "Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h" @@ -95,6 +96,12 @@ using namespace lldb; 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(); +} + void lldb_private::Initialize () { @@ -110,7 +117,15 @@ lldb_private::Initialize () HostInfo::Initialize(); Timer::Initialize (); Timer scoped_timer (__PRETTY_FUNCTION__, __PRETTY_FUNCTION__); - + + // Initialize LLVM and Clang + llvm::InitializeAllTargets(); + llvm::InitializeAllAsmPrinters(); + llvm::InitializeAllTargetMCs(); + llvm::InitializeAllDisassemblers(); + llvm::install_fatal_error_handler(fatal_error_handler, 0); + + // Initialize plug-ins ABIMacOSX_i386::Initialize(); ABIMacOSX_arm::Initialize(); ABIMacOSX_arm64::Initialize(); |