180814287SRaphael Isemann //===-- SystemInitializerFull.cpp -----------------------------------------===// 2e6e2bb38SZachary Turner // 32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6e6e2bb38SZachary Turner // 7e6e2bb38SZachary Turner //===----------------------------------------------------------------------===// 8e6e2bb38SZachary Turner 9d17cd902SAlex Langford #include "SystemInitializerFull.h" 102c1f46dcSZachary Turner #include "lldb/API/SBCommandInterpreter.h" 11e6e2bb38SZachary Turner #include "lldb/Core/Debugger.h" 12fbb4d1e4SJonas Devlieghere #include "lldb/Core/PluginManager.h" 13fbb4d1e4SJonas Devlieghere #include "lldb/Host/Config.h" 14e6e2bb38SZachary Turner #include "lldb/Host/Host.h" 15e6e2bb38SZachary Turner #include "lldb/Initialization/SystemInitializerCommon.h" 162c1f46dcSZachary Turner #include "lldb/Interpreter/CommandInterpreter.h" 1738d0632eSPavel Labath #include "lldb/Utility/Timer.h" 18e6e2bb38SZachary Turner #include "llvm/Support/TargetSelect.h" 19e6e2bb38SZachary Turner 205a36558cSSaleem Abdulrasool #pragma clang diagnostic push 215a36558cSSaleem Abdulrasool #pragma clang diagnostic ignored "-Wglobal-constructors" 225a36558cSSaleem Abdulrasool #include "llvm/ExecutionEngine/MCJIT.h" 235a36558cSSaleem Abdulrasool #pragma clang diagnostic pop 245a36558cSSaleem Abdulrasool 25e6e2bb38SZachary Turner #include <string> 26e6e2bb38SZachary Turner 2750c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIAArch64) 2850c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIARM) 29bcde387fSJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIARC) 30bcde387fSJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIHexagon) 3150c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIMips) 3250c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIPowerPC) 33bcde387fSJonas Devlieghere LLDB_PLUGIN_DECLARE(ABISystemZ) 3450c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIX86) 3550c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFileBreakpad) 3650c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFileELF) 37*aa2ae6afSJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFileJIT) 3850c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFileMachO) 3950c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFilePECOFF) 4050c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFileWasm) 4150c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectContainerBSDArchive) 42ccad1948SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectContainerMachOArchive) 4350c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ScriptInterpreterNone) 4450c9cd95SJonas Devlieghere #if LLDB_ENABLE_PYTHON 4550c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(OperatingSystemPython) 4650c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ScriptInterpreterPython) 4750c9cd95SJonas Devlieghere #endif 4850c9cd95SJonas Devlieghere #if LLDB_ENABLE_LUA 4950c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ScriptInterpreterLua) 5050c9cd95SJonas Devlieghere #endif 5150c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformFreeBSD) 5250c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformLinux) 5350c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformNetBSD) 5450c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformOpenBSD) 5550c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformWindows) 5650c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformAndroid) 5750c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformMacOSX) 5850c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(TypeSystemClang) 5950c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ArchitectureArm) 6050c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ArchitectureMips) 6150c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ArchitecturePPC64) 6250c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DisassemblerLLVMC) 6350c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(JITLoaderGDB) 6450c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessElfCore) 6550c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessMachCore) 6650c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessMinidump) 6750c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(MemoryHistoryASan) 6850c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstrumentationRuntimeASan) 6950c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstrumentationRuntimeTSan) 7050c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstrumentationRuntimeUBSan) 7150c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstrumentationRuntimeMainThreadChecker) 7250c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolVendorELF) 7350c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolFileBreakpad) 7450c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolFileDWARF) 7550c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolFilePDB) 7650c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolFileSymtab) 7750c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolVendorWasm) 7850c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(UnwindAssemblyInstEmulation) 79ccad1948SJonas Devlieghere LLDB_PLUGIN_DECLARE(UnwindAssemblyX86) 80ccad1948SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstructionARM) 81ccad1948SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstructionARM64) 82ccad1948SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstructionMIPS) 83ccad1948SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstructionMIPS64) 84ccad1948SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstructionPPC64) 85ccad1948SJonas Devlieghere LLDB_PLUGIN_DECLARE(CXXItaniumABI) 8650c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(AppleObjCRuntime) 8750c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SystemRuntimeMacOSX) 8850c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(RenderScriptRuntime) 8950c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(CPlusPlusLanguage) 9050c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjCLanguage) 9150c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjCPlusPlusLanguage) 9250c9cd95SJonas Devlieghere #if defined(_WIN32) 93ccad1948SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessWindowsCommon) 9450c9cd95SJonas Devlieghere #endif 9550c9cd95SJonas Devlieghere #if defined(__FreeBSD__) 9650c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessFreeBSD) 9750c9cd95SJonas Devlieghere #endif 9850c9cd95SJonas Devlieghere #if defined(__APPLE__) 9950c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolVendorMacOSX) 100ccad1948SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessMacOSXKernel) 10150c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderDarwinKernel) 10250c9cd95SJonas Devlieghere #endif 10350c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(StructuredDataDarwinLog) 104ccad1948SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformGDB) 10550c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessGDBRemote) 106*aa2ae6afSJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderHexagonDYLD) 10750c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderMacOSXDYLD) 108ccad1948SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderPosixDYLD) 10950c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderStatic) 11050c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderWasmDYLD) 11150c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderWindowsDYLD) 1123e70a919SJonas Devlieghere 113e6e2bb38SZachary Turner using namespace lldb_private; 114e6e2bb38SZachary Turner 115b9c1b51eSKate Stone SystemInitializerFull::SystemInitializerFull() {} 116e6e2bb38SZachary Turner 117b9c1b51eSKate Stone SystemInitializerFull::~SystemInitializerFull() {} 118e6e2bb38SZachary Turner 11950c9cd95SJonas Devlieghere #define LLDB_PROCESS_AArch64(op) op(ABIAArch64); 12050c9cd95SJonas Devlieghere #define LLDB_PROCESS_ARM(op) op(ABIARM); 121bcde387fSJonas Devlieghere #define LLDB_PROCESS_ARC(op) op(ABIARC); 122bcde387fSJonas Devlieghere #define LLDB_PROCESS_Hexagon(op) op(ABIHexagon); 12350c9cd95SJonas Devlieghere #define LLDB_PROCESS_Mips(op) op(ABIMips); 12450c9cd95SJonas Devlieghere #define LLDB_PROCESS_PowerPC(op) op(ABIPowerPC); 125bcde387fSJonas Devlieghere #define LLDB_PROCESS_SystemZ(op) op(ABISystemZ); 12650c9cd95SJonas Devlieghere #define LLDB_PROCESS_X86(op) op(ABIX86); 12750c9cd95SJonas Devlieghere 12850c9cd95SJonas Devlieghere #define LLDB_PROCESS_AMDGPU(op) 12950c9cd95SJonas Devlieghere #define LLDB_PROCESS_AVR(op) 13050c9cd95SJonas Devlieghere #define LLDB_PROCESS_BPF(op) 13150c9cd95SJonas Devlieghere #define LLDB_PROCESS_Lanai(op) 13250c9cd95SJonas Devlieghere #define LLDB_PROCESS_MSP430(op) 13350c9cd95SJonas Devlieghere #define LLDB_PROCESS_NVPTX(op) 13450c9cd95SJonas Devlieghere #define LLDB_PROCESS_RISCV(op) 13550c9cd95SJonas Devlieghere #define LLDB_PROCESS_Sparc(op) 13650c9cd95SJonas Devlieghere #define LLDB_PROCESS_WebAssembly(op) 13750c9cd95SJonas Devlieghere #define LLDB_PROCESS_XCore(op) 13850c9cd95SJonas Devlieghere 139936c6242SJonas Devlieghere llvm::Error SystemInitializerFull::Initialize() { 140936c6242SJonas Devlieghere if (auto e = SystemInitializerCommon::Initialize()) 14115eacd74SJonas Devlieghere return e; 142fa3fa5b9SPavel Labath 14350c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFileBreakpad); 14450c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFileELF); 145*aa2ae6afSJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFileJIT); 14650c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFileMachO); 14750c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFilePECOFF); 14850c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFileWasm); 14950c9cd95SJonas Devlieghere 15050c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectContainerBSDArchive); 151ccad1948SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectContainerMachOArchive); 15250c9cd95SJonas Devlieghere 15350c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ScriptInterpreterNone); 15450c9cd95SJonas Devlieghere 15550c9cd95SJonas Devlieghere #if LLDB_ENABLE_PYTHON 15650c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(OperatingSystemPython); 15750c9cd95SJonas Devlieghere #endif 15850c9cd95SJonas Devlieghere 15950c9cd95SJonas Devlieghere #if LLDB_ENABLE_PYTHON 16050c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ScriptInterpreterPython); 16150c9cd95SJonas Devlieghere #endif 16250c9cd95SJonas Devlieghere 16350c9cd95SJonas Devlieghere #if LLDB_ENABLE_LUA 16450c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ScriptInterpreterLua); 16550c9cd95SJonas Devlieghere #endif 16650c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformFreeBSD); 16750c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformLinux); 16850c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformNetBSD); 16950c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformOpenBSD); 17050c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformWindows); 17150c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformAndroid); 17250c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformMacOSX); 17350c9cd95SJonas Devlieghere 174e6e2bb38SZachary Turner // Initialize LLVM and Clang 175e6e2bb38SZachary Turner llvm::InitializeAllTargets(); 176e6e2bb38SZachary Turner llvm::InitializeAllAsmPrinters(); 177e6e2bb38SZachary Turner llvm::InitializeAllTargetMCs(); 178e6e2bb38SZachary Turner llvm::InitializeAllDisassemblers(); 179e6e2bb38SZachary Turner 18050c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(TypeSystemClang); 18156939cb3SGreg Clayton 18250c9cd95SJonas Devlieghere #define LLVM_TARGET(t) LLDB_PROCESS_##t(LLDB_PLUGIN_INITIALIZE) 18350c9cd95SJonas Devlieghere #include "llvm/Config/Targets.def" 18450c9cd95SJonas Devlieghere 18550c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ArchitectureArm); 18650c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ArchitectureMips); 18750c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ArchitecturePPC64); 18850c9cd95SJonas Devlieghere 18950c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DisassemblerLLVMC); 19050c9cd95SJonas Devlieghere 19150c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(JITLoaderGDB); 19250c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessElfCore); 19350c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessMachCore); 19450c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessMinidump); 19550c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(MemoryHistoryASan); 19650c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeASan); 19750c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeTSan); 19850c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeUBSan); 19950c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeMainThreadChecker); 20050c9cd95SJonas Devlieghere 20150c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolVendorELF); 20250c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolFileBreakpad); 20350c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolFileDWARF); 20450c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolFilePDB); 20550c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolFileSymtab); 20650c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolVendorWasm); 20750c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(UnwindAssemblyInstEmulation); 208ccad1948SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(UnwindAssemblyX86); 20950c9cd95SJonas Devlieghere 210ccad1948SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstructionARM); 211ccad1948SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstructionARM64); 212ccad1948SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstructionMIPS); 213ccad1948SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstructionMIPS64); 214ccad1948SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstructionPPC64); 21550c9cd95SJonas Devlieghere 216ccad1948SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(CXXItaniumABI); 21750c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(AppleObjCRuntime); 21850c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SystemRuntimeMacOSX); 21950c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(RenderScriptRuntime); 22050c9cd95SJonas Devlieghere 22150c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(CPlusPlusLanguage); 22250c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjCLanguage); 22350c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjCPlusPlusLanguage); 22450c9cd95SJonas Devlieghere 22550c9cd95SJonas Devlieghere #if defined(_WIN32) 226ccad1948SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessWindowsCommon); 22750c9cd95SJonas Devlieghere #endif 22850c9cd95SJonas Devlieghere #if defined(__FreeBSD__) 22950c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessFreeBSD); 23050c9cd95SJonas Devlieghere #endif 23150c9cd95SJonas Devlieghere #if defined(__APPLE__) 23250c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolVendorMacOSX); 233ccad1948SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessMacOSXKernel); 23450c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderDarwinKernel); 23550c9cd95SJonas Devlieghere #endif 23650c9cd95SJonas Devlieghere 23750c9cd95SJonas Devlieghere // This plugin is valid on any host that talks to a Darwin remote. It 23850c9cd95SJonas Devlieghere // shouldn't be limited to __APPLE__. 23950c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(StructuredDataDarwinLog); 24050c9cd95SJonas Devlieghere 24150c9cd95SJonas Devlieghere // Platform agnostic plugins 242ccad1948SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformGDB); 24350c9cd95SJonas Devlieghere 24450c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessGDBRemote); 245*aa2ae6afSJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderHexagonDYLD); 24650c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderMacOSXDYLD); 247ccad1948SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderPosixDYLD); 24850c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderWasmDYLD); // Before DynamicLoaderStatic. 24950c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderStatic); 25050c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderWindowsDYLD); 25150c9cd95SJonas Devlieghere 25250c9cd95SJonas Devlieghere // Scan for any system or user LLDB plug-ins 253e6e2bb38SZachary Turner PluginManager::Initialize(); 254e6e2bb38SZachary Turner 25505097246SAdrian Prantl // The process settings need to know about installed plug-ins, so the 25650c9cd95SJonas Devlieghere // Settings must be initialized 25750c9cd95SJonas Devlieghere // AFTER PluginManager::Initialize is called. 25850c9cd95SJonas Devlieghere 259e6e2bb38SZachary Turner Debugger::SettingsInitialize(); 26015eacd74SJonas Devlieghere 26115eacd74SJonas Devlieghere return llvm::Error::success(); 262e6e2bb38SZachary Turner } 263e6e2bb38SZachary Turner 264b9c1b51eSKate Stone void SystemInitializerFull::Terminate() { 265f9d16476SPavel Labath static Timer::Category func_cat(LLVM_PRETTY_FUNCTION); 266f9d16476SPavel Labath Timer scoped_timer(func_cat, LLVM_PRETTY_FUNCTION); 267e6e2bb38SZachary Turner 268e6e2bb38SZachary Turner Debugger::SettingsTerminate(); 269e6e2bb38SZachary Turner 27050c9cd95SJonas Devlieghere // Terminate and unload and loaded system or user LLDB plug-ins 271e6e2bb38SZachary Turner PluginManager::Terminate(); 27256939cb3SGreg Clayton 27350c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(TypeSystemClang); 27450c9cd95SJonas Devlieghere 27550c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ArchitectureArm); 27650c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ArchitectureMips); 27750c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ArchitecturePPC64); 27850c9cd95SJonas Devlieghere 27950c9cd95SJonas Devlieghere #define LLVM_TARGET(t) LLDB_PROCESS_##t(LLDB_PLUGIN_TERMINATE) 28050c9cd95SJonas Devlieghere #include "llvm/Config/Targets.def" 28150c9cd95SJonas Devlieghere 28250c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DisassemblerLLVMC); 28350c9cd95SJonas Devlieghere 28450c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(JITLoaderGDB); 28550c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessElfCore); 28650c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessMachCore); 28750c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessMinidump); 28850c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(MemoryHistoryASan); 28950c9cd95SJonas Devlieghere 29050c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeASan); 29150c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeTSan); 29250c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeUBSan); 29350c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeMainThreadChecker); 29450c9cd95SJonas Devlieghere 29550c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolVendorWasm); 29650c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolVendorELF); 29750c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolFileBreakpad); 29850c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolFileDWARF); 29950c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolFilePDB); 30050c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolFileSymtab); 301ccad1948SJonas Devlieghere LLDB_PLUGIN_TERMINATE(UnwindAssemblyX86); 30250c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(UnwindAssemblyInstEmulation); 30350c9cd95SJonas Devlieghere 304ccad1948SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstructionARM); 305ccad1948SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstructionARM64); 306ccad1948SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstructionMIPS); 307ccad1948SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstructionMIPS64); 308ccad1948SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstructionPPC64); 30950c9cd95SJonas Devlieghere 310ccad1948SJonas Devlieghere LLDB_PLUGIN_TERMINATE(CXXItaniumABI); 31150c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(AppleObjCRuntime); 31250c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SystemRuntimeMacOSX); 31350c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(RenderScriptRuntime); 31450c9cd95SJonas Devlieghere 31550c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(CPlusPlusLanguage); 31650c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjCLanguage); 31750c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjCPlusPlusLanguage); 31850c9cd95SJonas Devlieghere 31950c9cd95SJonas Devlieghere #if defined(__APPLE__) 32050c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderDarwinKernel); 321ccad1948SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessMacOSXKernel); 32250c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolVendorMacOSX); 32350c9cd95SJonas Devlieghere #endif 32450c9cd95SJonas Devlieghere 32550c9cd95SJonas Devlieghere #if defined(__FreeBSD__) 32650c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessFreeBSD); 32750c9cd95SJonas Devlieghere #endif 32850c9cd95SJonas Devlieghere Debugger::SettingsTerminate(); 32950c9cd95SJonas Devlieghere 330ccad1948SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformGDB); 33150c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessGDBRemote); 33250c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(StructuredDataDarwinLog); 33350c9cd95SJonas Devlieghere 334*aa2ae6afSJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderHexagonDYLD); 33550c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderMacOSXDYLD); 336ccad1948SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderPosixDYLD); 33750c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderWasmDYLD); 33850c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderStatic); 33950c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderWindowsDYLD); 34050c9cd95SJonas Devlieghere 34150c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformFreeBSD); 34250c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformLinux); 34350c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformNetBSD); 34450c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformOpenBSD); 34550c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformWindows); 34650c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformAndroid); 34750c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformMacOSX); 34850c9cd95SJonas Devlieghere 34950c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFileBreakpad); 35050c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFileELF); 351*aa2ae6afSJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFileJIT); 35250c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFileMachO); 35350c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFilePECOFF); 35450c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFileWasm); 35550c9cd95SJonas Devlieghere 35650c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectContainerBSDArchive); 357ccad1948SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectContainerMachOArchive); 35850c9cd95SJonas Devlieghere 35950c9cd95SJonas Devlieghere #if LLDB_ENABLE_PYTHON 36050c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(OperatingSystemPython); 36150c9cd95SJonas Devlieghere #endif 36250c9cd95SJonas Devlieghere 36350c9cd95SJonas Devlieghere #if LLDB_ENABLE_PYTHON 36450c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ScriptInterpreterPython); 36550c9cd95SJonas Devlieghere #endif 36650c9cd95SJonas Devlieghere 36750c9cd95SJonas Devlieghere #if LLDB_ENABLE_LUA 36850c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ScriptInterpreterLua); 36950c9cd95SJonas Devlieghere #endif 37050c9cd95SJonas Devlieghere 37150c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ScriptInterpreterNone); 372fbb4d1e4SJonas Devlieghere 373e6e2bb38SZachary Turner // Now shutdown the common parts, in reverse order. 374e6e2bb38SZachary Turner SystemInitializerCommon::Terminate(); 375e6e2bb38SZachary Turner } 376