Expand Up
@@ -37,7 +37,6 @@
#include " Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h"
#include " Plugins/Instruction/ARM/EmulateInstructionARM.h"
#include " Plugins/Instruction/ARM64/EmulateInstructionARM64.h"
#include " Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.h"
#include " Plugins/JITLoader/GDB/JITLoaderGDB.h"
#include " Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.h"
#include " Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h"
Expand All
@@ -61,23 +60,24 @@
#ifndef LLDB_DISABLE_PYTHON
#include " Plugins/OperatingSystem/Python/OperatingSystemPython.h"
#endif
# if defined (__APPLE__)
#include " Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h"
#include " Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h"
#include " Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h"
#include " Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h"
#include " Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.h"
#include " Plugins/ObjectFile/Mach-O/ObjectFileMachO.h"
#include " Plugins/Process/MacOSX-Kernel/ProcessKDP.h"
#include " Plugins/Platform/MacOSX/PlatformMacOSX.h"
#include " Plugins/Platform/MacOSX/PlatformRemoteiOS.h"
#include " Plugins/Platform/MacOSX/PlatformDarwinKernel.h"
#include " Plugins/Platform/MacOSX/PlatformiOSSimulator.h"
#include " Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h"
#endif
#if defined (__APPLE__)
#include " Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h"
#include " Plugins/ObjectFile/Mach-O/ObjectFileMachO.h"
#include " Plugins/Platform/MacOSX/PlatformDarwinKernel.h"
#include " Plugins/Process/mach-core/ProcessMachCore.h"
#include " Plugins/Process/MacOSX-Kernel/ProcessKDP.h"
#include " Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.h"
#endif
#if defined (__linux__)
#include " Plugins/Process/Linux/ProcessLinux.h"
Expand Down
Expand Up
@@ -110,7 +110,7 @@ static void fatal_error_handler(void *user_data, const std::string& reason,
}
void
lldb_private::Initialize ()
lldb_private::InitializeForLLGS ()
{
// Make sure we initialize only once
static Mutex g_inited_mutex (Mutex::eMutexTypeRecursive);
Expand Down
Expand Up
@@ -141,70 +141,90 @@ lldb_private::Initialize ()
Log::Initialize ();
HostInfo::Initialize ();
Timer::Initialize ();
Timer scoped_timer (__PRETTY_FUNCTION__, __PRETTY_FUNCTION__);
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 ();
ABISysV_x86_64::Initialize ();
ABISysV_ppc::Initialize ();
ABISysV_ppc64::Initialize ();
DisassemblerLLVMC::Initialize ();
ObjectContainerBSDArchive::Initialize ();
ObjectFileELF::Initialize ();
SymbolVendorELF::Initialize ();
SymbolFileDWARF::Initialize ();
SymbolFileSymtab::Initialize ();
UnwindAssemblyInstEmulation::Initialize ();
UnwindAssembly_x86::Initialize ();
EmulateInstructionARM::Initialize ();
EmulateInstructionARM64::Initialize ();
ObjectFilePECOFF::Initialize ();
DynamicLoaderPOSIXDYLD::Initialize ();
EmulateInstructionARM::Initialize ();
EmulateInstructionARM64::Initialize ();
ObjectFilePECOFF::Initialize ();
DynamicLoaderPOSIXDYLD::Initialize ();
PlatformFreeBSD::Initialize ();
PlatformLinux::Initialize ();
PlatformWindows::Initialize ();
PlatformKalimba::Initialize ();
PlatformAndroid::Initialize ();
SymbolFileDWARFDebugMap::Initialize ();
ItaniumABILanguageRuntime::Initialize ();
#ifndef LLDB_DISABLE_PYTHON
ScriptInterpreterPython::InitializePrivate ();
OperatingSystemPython::Initialize ();
#endif
JITLoaderGDB::Initialize ();
ProcessElfCore::Initialize ();
MemoryHistoryASan::Initialize ();
AddressSanitizerRuntime::Initialize ();
#if defined (__APPLE__)
// ----------------------------------------------------------------------
// Apple/Darwin hosted plugins
// ----------------------------------------------------------------------
DynamicLoaderMacOSXDYLD::Initialize ();
DynamicLoaderDarwinKernel::Initialize ();
AppleObjCRuntimeV2::Initialize ();
AppleObjCRuntimeV1::Initialize ();
ObjectContainerUniversalMachO::Initialize ();
ObjectFileMachO::Initialize ();
ProcessKDP::Initialize ();
ProcessMachCore::Initialize ();
SymbolVendorMacOSX::Initialize ();
PlatformDarwinKernel::Initialize ();
PlatformRemoteiOS::Initialize ();
PlatformMacOSX::Initialize ();
PlatformiOSSimulator::Initialize ();
SystemRuntimeMacOSX::Initialize ();
#if defined (__APPLE__)
SymbolVendorMacOSX::Initialize ();
DynamicLoaderDarwinKernel::Initialize ();
PlatformDarwinKernel::Initialize ();
ObjectFileMachO::Initialize ();
#endif
#ifndef LLDB_DISABLE_PYTHON
ScriptInterpreterPython::InitializePrivate ();
OperatingSystemPython::Initialize ();
#endif
}
}
void
lldb_private::Initialize ()
{
// Make sure we initialize only once
static Mutex g_inited_mutex (Mutex::eMutexTypeRecursive);
static bool g_inited = false ;
InitializeForLLGS ();
Mutex::Locker locker (g_inited_mutex);
if (!g_inited)
{
g_inited = true ;
// Initialize LLVM and Clang
llvm::InitializeAllTargets ();
llvm::InitializeAllAsmPrinters ();
llvm::InitializeAllTargetMCs ();
llvm::InitializeAllDisassemblers ();
ABIMacOSX_i386::Initialize ();
ABIMacOSX_arm::Initialize ();
ABIMacOSX_arm64::Initialize ();
ABISysV_x86_64::Initialize ();
ABISysV_ppc::Initialize ();
ABISysV_ppc64::Initialize ();
DisassemblerLLVMC::Initialize ();
JITLoaderGDB::Initialize ();
ProcessElfCore::Initialize ();
MemoryHistoryASan::Initialize ();
AddressSanitizerRuntime::Initialize ();
#if defined (__linux__)
// ----------------------------------------------------------------------
// Linux hosted plugins
Expand All
@@ -218,11 +238,15 @@ lldb_private::Initialize ()
#if defined (__FreeBSD__)
ProcessFreeBSD::Initialize ();
#endif
#if defined (__APPLE__)
ProcessKDP::Initialize ();
ProcessMachCore::Initialize ();
#endif
// ----------------------------------------------------------------------
// Platform agnostic plugins
// ----------------------------------------------------------------------
PlatformRemoteGDBServer::Initialize ();
PlatformRemoteGDBServer::Initialize ();
ProcessGDBRemote::Initialize ();
DynamicLoaderStatic::Initialize ();
Expand All
@@ -231,8 +255,9 @@ lldb_private::Initialize ()
// The process settings need to know about installed plug-ins, so the Settings must be initialized
// AFTER PluginManager::Initialize is called.
Debugger ::SettingsInitialize ();
}
}
Expand All
@@ -243,19 +268,9 @@ lldb_private::WillTerminate()
}
void
lldb_private::Terminate ()
lldb_private::TerminateLLGS ()
{
Timer scoped_timer (__PRETTY_FUNCTION__, __PRETTY_FUNCTION__);
// Terminate and unload and loaded system or user LLDB plug-ins
PluginManager::Terminate ();
ABIMacOSX_i386::Terminate ();
ABIMacOSX_arm::Terminate ();
ABIMacOSX_arm64::Terminate ();
ABISysV_x86_64::Terminate ();
ABISysV_ppc::Terminate ();
ABISysV_ppc64::Terminate ();
DisassemblerLLVMC::Terminate ();
ObjectContainerBSDArchive::Terminate ();
ObjectFileELF::Terminate ();
SymbolVendorELF::Terminate ();
Expand All
@@ -274,33 +289,51 @@ lldb_private::Terminate ()
PlatformAndroid::Terminate ();
SymbolFileDWARFDebugMap::Terminate ();
ItaniumABILanguageRuntime::Terminate ();
#ifndef LLDB_DISABLE_PYTHON
OperatingSystemPython::Terminate ();
#endif
JITLoaderGDB::Terminate ();
ProcessElfCore::Terminate ();
MemoryHistoryASan::Terminate ();
AddressSanitizerRuntime::Terminate ();
#if defined (__APPLE__)
DynamicLoaderMacOSXDYLD::Terminate ();
DynamicLoaderDarwinKernel::Terminate ();
AppleObjCRuntimeV2::Terminate ();
AppleObjCRuntimeV1::Terminate ();
ObjectContainerUniversalMachO::Terminate ();
ObjectFileMachO::Terminate ();
ProcessMachCore::Terminate ();
ProcessKDP::Terminate ();
SymbolVendorMacOSX::Terminate ();
PlatformMacOSX::Terminate ();
PlatformDarwinKernel::Terminate ();
PlatformRemoteiOS::Terminate ();
PlatformiOSSimulator::Terminate ();
SystemRuntimeMacOSX::Terminate ();
#if defined (__APPLE__)
DynamicLoaderDarwinKernel::Terminate ();
ObjectFileMachO::Terminate ();
PlatformDarwinKernel::Terminate ();
SymbolVendorMacOSX::Terminate ();
#endif
#ifndef LLDB_DISABLE_PYTHON
OperatingSystemPython::Terminate ();
#endif
Debugger ::SettingsTerminate ();
Log::Terminate ();
}
void
lldb_private::Terminate ()
{
Timer scoped_timer (__PRETTY_FUNCTION__, __PRETTY_FUNCTION__);
// Terminate and unload and loaded system or user LLDB plug-ins
PluginManager::Terminate ();
ABIMacOSX_i386::Terminate ();
ABIMacOSX_arm::Terminate ();
ABIMacOSX_arm64::Terminate ();
ABISysV_x86_64::Terminate ();
ABISysV_ppc::Terminate ();
ABISysV_ppc64::Terminate ();
DisassemblerLLVMC::Terminate ();
JITLoaderGDB::Terminate ();
ProcessElfCore::Terminate ();
MemoryHistoryASan::Terminate ();
AddressSanitizerRuntime::Terminate ();
#if defined (__APPLE__)
ProcessMachCore::Terminate ();
ProcessKDP::Terminate ();
#endif
#if defined(_MSC_VER)
DynamicLoaderWindows::Terminate ();
#endif
Expand All
@@ -312,12 +345,12 @@ lldb_private::Terminate ()
#if defined (__FreeBSD__)
ProcessFreeBSD::Terminate ();
#endif
Debugger ::SettingsTerminate ();
PlatformRemoteGDBServer::Terminate ();
ProcessGDBRemote::Terminate ();
DynamicLoaderStatic::Terminate ();
Log::Terminate ();
TerminateLLGS ();
}
#if defined (__APPLE__)
Expand Down