Index: source/API/SystemInitializerFull.cpp =================================================================== --- source/API/SystemInitializerFull.cpp +++ source/API/SystemInitializerFull.cpp @@ -43,7 +43,10 @@ #include "Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h" #include "Plugins/DynamicLoader/Static/DynamicLoaderStatic.h" #include "Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.h" +#include "Plugins/Instruction/ARM/EmulateInstructionARM.h" #include "Plugins/Instruction/ARM64/EmulateInstructionARM64.h" +#include "Plugins/Instruction/MIPS/EmulateInstructionMIPS.h" +#include "Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h" #include "Plugins/Instruction/PPC64/EmulateInstructionPPC64.h" #include "Plugins/InstrumentationRuntime/ASan/ASanRuntime.h" #include "Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.h" @@ -207,8 +210,13 @@ SymbolFileSymtab::Initialize(); UnwindAssemblyInstEmulation::Initialize(); UnwindAssembly_x86::Initialize(); + + EmulateInstructionARM::Initialize(); EmulateInstructionARM64::Initialize(); + EmulateInstructionMIPS::Initialize(); + EmulateInstructionMIPS64::Initialize(); EmulateInstructionPPC64::Initialize(); + SymbolFileDWARFDebugMap::Initialize(); ItaniumABILanguageRuntime::Initialize(); AppleObjCRuntimeV2::Initialize(); @@ -309,8 +317,13 @@ SymbolFileSymtab::Terminate(); UnwindAssembly_x86::Terminate(); UnwindAssemblyInstEmulation::Terminate(); + + EmulateInstructionARM::Terminate(); EmulateInstructionARM64::Terminate(); + EmulateInstructionMIPS::Terminate(); + EmulateInstructionMIPS64::Terminate(); EmulateInstructionPPC64::Terminate(); + SymbolFileDWARFDebugMap::Terminate(); ItaniumABILanguageRuntime::Terminate(); AppleObjCRuntimeV2::Terminate(); Index: source/Initialization/CMakeLists.txt =================================================================== --- source/Initialization/CMakeLists.txt +++ source/Initialization/CMakeLists.txt @@ -14,9 +14,6 @@ LINK_LIBS lldbCore lldbHost - lldbPluginInstructionARM - lldbPluginInstructionMIPS - lldbPluginInstructionMIPS64 lldbPluginProcessGDBRemote ${EXTRA_PLUGINS} ${LLDB_SYSTEM_LIBS} Index: source/Initialization/SystemInitializerCommon.cpp =================================================================== --- source/Initialization/SystemInitializerCommon.cpp +++ source/Initialization/SystemInitializerCommon.cpp @@ -8,9 +8,6 @@ #include "lldb/Initialization/SystemInitializerCommon.h" -#include "Plugins/Instruction/ARM/EmulateInstructionARM.h" -#include "Plugins/Instruction/MIPS/EmulateInstructionMIPS.h" -#include "Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h" #include "Plugins/Process/gdb-remote/ProcessGDBRemoteLog.h" #include "lldb/Host/FileSystem.h" #include "lldb/Host/Host.h" @@ -99,10 +96,6 @@ process_gdb_remote::ProcessGDBRemoteLog::Initialize(); - EmulateInstructionARM::Initialize(); - EmulateInstructionMIPS::Initialize(); - EmulateInstructionMIPS64::Initialize(); - #if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) ProcessPOSIXLog::Initialize(); #endif @@ -117,10 +110,6 @@ static Timer::Category func_cat(LLVM_PRETTY_FUNCTION); Timer scoped_timer(func_cat, LLVM_PRETTY_FUNCTION); - EmulateInstructionARM::Terminate(); - EmulateInstructionMIPS::Terminate(); - EmulateInstructionMIPS64::Terminate(); - #if defined(_WIN32) ProcessWindowsLog::Terminate(); #endif Index: tools/lldb-server/CMakeLists.txt =================================================================== --- tools/lldb-server/CMakeLists.txt +++ tools/lldb-server/CMakeLists.txt @@ -67,6 +67,9 @@ lldbHost lldbInitialization ${LLDB_PLUGINS} + lldbPluginInstructionARM + lldbPluginInstructionMIPS + lldbPluginInstructionMIPS64 ${LLDB_SYSTEM_LIBS} LINK_COMPONENTS Index: tools/lldb-server/SystemInitializerLLGS.cpp =================================================================== --- tools/lldb-server/SystemInitializerLLGS.cpp +++ tools/lldb-server/SystemInitializerLLGS.cpp @@ -19,6 +19,23 @@ using HostObjectFile = ObjectFileELF; #endif +#if defined(__arm__) || defined(__arm) || defined(_ARM) || defined(_M_ARM) +#define _M_ARM +#include "Plugins/Instruction/ARM/EmulateInstructionARM.h" +#endif + +#if defined(__mips__) || defined(mips) || defined(__mips) || \ + defined(__MIPS__) || defined(_M_MIPS) +#define _M_MIPS +#include "Plugins/Instruction/MIPS/EmulateInstructionMIPS.h" +#endif + +#if defined(__mips64__) || defined(mips64) || defined(__mips64) || \ + defined(__MIPS64__) || defined(_M_MIPS64) +#define _M_MIPS64 +#include "Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h" +#endif + using namespace lldb_private; llvm::Error SystemInitializerLLGS::Initialize() { @@ -27,10 +44,31 @@ HostObjectFile::Initialize(); +#if defined(_M_ARM) + EmulateInstructionARM::Initialize(); +#endif +#if defined(_M_MIPS) + EmulateInstructionMIPS::Initialize(); +#endif +#if defined(_M_MIPS64) + EmulateInstructionMIPS64::Initialize(); +#endif + return llvm::Error::success(); } void SystemInitializerLLGS::Terminate() { HostObjectFile::Terminate(); + +#if defined(_M_ARM) + EmulateInstructionARM::Terminate(); +#endif +#if defined(_M_MIPS) + EmulateInstructionMIPS::Terminate(); +#endif +#if defined(_M_MIPS64) + EmulateInstructionMIPS64::Terminate(); +#endif + SystemInitializerCommon::Terminate(); }