Initial checkin of lldb code from internal Apple repo.
git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105619 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/lldb.cpp b/source/lldb.cpp
new file mode 100644
index 0000000..187f9ea
--- /dev/null
+++ b/source/lldb.cpp
@@ -0,0 +1,107 @@
+//===-- lldb.cpp ------------------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "lldb/lldb-private.h"
+#include "lldb/lldb-private-log.h"
+#include "lldb/Core/Log.h"
+#include "lldb/Core/Timer.h"
+#include "lldb/Host/Host.h"
+#include "ABIMacOSX_i386.h"
+#include "ABISysV_x86_64.h"
+#include "DisassemblerLLVM.h"
+#include "DynamicLoaderMacOSXDYLD.h"
+#include "ObjectContainerBSDArchive.h"
+#include "ObjectContainerUniversalMachO.h"
+#include "ObjectFileELF.h"
+#include "ObjectFileMachO.h"
+#include "ProcessMacOSX.h"
+#include "ProcessGDBRemote.h"
+#include "SymbolFileDWARF.h"
+#include "SymbolFileDWARFDebugMap.h"
+#include "SymbolFileSymtab.h"
+#include "SymbolVendorMacOSX.h"
+
+using namespace lldb_private;
+
+
+void
+lldb_private::Initialize ()
+{
+ // Make sure we inialize only once
+ static Mutex g_inited_mutex(Mutex::eMutexTypeNormal);
+ static bool g_inited = false;
+
+ Mutex::Locker locker(g_inited_mutex);
+ if (!g_inited)
+ {
+ g_inited = true;
+ Timer::Initialize ();
+ Timer scoped_timer (__PRETTY_FUNCTION__, __PRETTY_FUNCTION__);
+
+ Log::Callbacks log_callbacks = { DisableLog, EnableLog, ListLogCategories };
+
+ Log::RegisterLogChannel ("lldb", log_callbacks);
+ ABIMacOSX_i386::Initialize();
+ ABISysV_x86_64::Initialize();
+ DisassemblerLLVM::Initialize();
+ DynamicLoaderMacOSXDYLD::Initialize();
+ ObjectContainerUniversalMachO::Initialize();
+ ObjectContainerBSDArchive::Initialize();
+ ObjectFileELF::Initialize();
+ ObjectFileMachO::Initialize();
+ ProcessGDBRemote::Initialize();
+ ProcessMacOSX::Initialize();
+ SymbolFileDWARF::Initialize();
+ SymbolFileDWARFDebugMap::Initialize();
+ SymbolFileSymtab::Initialize();
+ SymbolVendorMacOSX::Initialize();
+ }
+}
+
+void
+lldb_private::WillTerminate()
+{
+ Host::WillTerminate();
+}
+
+void
+lldb_private::Terminate ()
+{
+ Timer scoped_timer (__PRETTY_FUNCTION__, __PRETTY_FUNCTION__);
+ DisassemblerLLVM::Terminate();
+ DynamicLoaderMacOSXDYLD::Terminate();
+ ObjectContainerUniversalMachO::Terminate();
+ ObjectContainerBSDArchive::Terminate();
+ ObjectFileELF::Terminate();
+ ObjectFileMachO::Terminate();
+ ProcessGDBRemote::Terminate();
+ ProcessMacOSX::Terminate();
+ SymbolFileDWARF::Terminate();
+ SymbolFileDWARFDebugMap::Terminate();
+ SymbolFileSymtab::Terminate();
+ SymbolVendorMacOSX::Terminate();
+}
+
+const char *
+lldb_private::GetVersion ()
+{
+ extern const double LLDBVersionNumber;
+ static char g_version_string[32];
+ if (g_version_string[0] == '\0')
+ ::snprintf (g_version_string, sizeof(g_version_string), "LLDB-%g", LLDBVersionNumber);
+
+ return g_version_string;
+}
+
+ArchSpec &
+lldb_private::GetDefaultArchitecture ()
+{
+ static ArchSpec g_default_arch;
+ return g_default_arch;
+}