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) 29*bcde387fSJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIARC) 30*bcde387fSJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIHexagon) 3150c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIMips) 3250c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIPowerPC) 33*bcde387fSJonas Devlieghere LLDB_PLUGIN_DECLARE(ABISystemZ) 3450c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIX86) 3550c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFileBreakpad) 3650c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFileELF) 3750c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFileMachO) 3850c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFilePECOFF) 3950c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFileWasm) 4050c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectContainerBSDArchive) 4150c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectContainerUniversalMachO) 4250c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ScriptInterpreterNone) 4350c9cd95SJonas Devlieghere #if LLDB_ENABLE_PYTHON 4450c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(OperatingSystemPython) 4550c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ScriptInterpreterPython) 4650c9cd95SJonas Devlieghere #endif 4750c9cd95SJonas Devlieghere #if LLDB_ENABLE_LUA 4850c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ScriptInterpreterLua) 4950c9cd95SJonas Devlieghere #endif 5050c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformFreeBSD) 5150c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformLinux) 5250c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformNetBSD) 5350c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformOpenBSD) 5450c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformWindows) 5550c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformAndroid) 5650c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformMacOSX) 5750c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(TypeSystemClang) 5850c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ArchitectureArm) 5950c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ArchitectureMips) 6050c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ArchitecturePPC64) 6150c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DisassemblerLLVMC) 6250c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(JITLoaderGDB) 6350c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessElfCore) 6450c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessMachCore) 6550c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessMinidump) 6650c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(MemoryHistoryASan) 6750c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstrumentationRuntimeASan) 6850c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstrumentationRuntimeTSan) 6950c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstrumentationRuntimeUBSan) 7050c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstrumentationRuntimeMainThreadChecker) 7150c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolVendorELF) 7250c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolFileBreakpad) 7350c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolFileDWARF) 7450c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolFilePDB) 7550c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolFileSymtab) 7650c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolVendorWasm) 7750c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(UnwindAssemblyInstEmulation) 7850c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(UnwindAssembly_x86) 7950c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(EmulateInstructionARM) 8050c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(EmulateInstructionARM64) 8150c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(EmulateInstructionMIPS) 8250c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(EmulateInstructionMIPS64) 8350c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(EmulateInstructionPPC64) 8450c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ItaniumABILanguageRuntime) 8550c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(AppleObjCRuntime) 8650c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SystemRuntimeMacOSX) 8750c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(RenderScriptRuntime) 8850c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(CPlusPlusLanguage) 8950c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjCLanguage) 9050c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjCPlusPlusLanguage) 9150c9cd95SJonas Devlieghere #if defined(_WIN32) 9250c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessWindows) 9350c9cd95SJonas Devlieghere #endif 9450c9cd95SJonas Devlieghere #if defined(__FreeBSD__) 9550c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessFreeBSD) 9650c9cd95SJonas Devlieghere #endif 9750c9cd95SJonas Devlieghere #if defined(__APPLE__) 9850c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolVendorMacOSX) 9950c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessKDP) 10050c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderDarwinKernel) 10150c9cd95SJonas Devlieghere #endif 10250c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(StructuredDataDarwinLog) 10350c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformRemoteGDBServer) 10450c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessGDBRemote) 10550c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderMacOSXDYLD) 10650c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderPOSIXDYLD) 10750c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderStatic) 10850c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderWasmDYLD) 10950c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderWindowsDYLD) 1103e70a919SJonas Devlieghere 111e6e2bb38SZachary Turner using namespace lldb_private; 112e6e2bb38SZachary Turner 113b9c1b51eSKate Stone SystemInitializerFull::SystemInitializerFull() {} 114e6e2bb38SZachary Turner 115b9c1b51eSKate Stone SystemInitializerFull::~SystemInitializerFull() {} 116e6e2bb38SZachary Turner 11750c9cd95SJonas Devlieghere #define LLDB_PROCESS_AArch64(op) op(ABIAArch64); 11850c9cd95SJonas Devlieghere #define LLDB_PROCESS_ARM(op) op(ABIARM); 119*bcde387fSJonas Devlieghere #define LLDB_PROCESS_ARC(op) op(ABIARC); 120*bcde387fSJonas Devlieghere #define LLDB_PROCESS_Hexagon(op) op(ABIHexagon); 12150c9cd95SJonas Devlieghere #define LLDB_PROCESS_Mips(op) op(ABIMips); 12250c9cd95SJonas Devlieghere #define LLDB_PROCESS_PowerPC(op) op(ABIPowerPC); 123*bcde387fSJonas Devlieghere #define LLDB_PROCESS_SystemZ(op) op(ABISystemZ); 12450c9cd95SJonas Devlieghere #define LLDB_PROCESS_X86(op) op(ABIX86); 12550c9cd95SJonas Devlieghere 12650c9cd95SJonas Devlieghere #define LLDB_PROCESS_AMDGPU(op) 12750c9cd95SJonas Devlieghere #define LLDB_PROCESS_AVR(op) 12850c9cd95SJonas Devlieghere #define LLDB_PROCESS_BPF(op) 12950c9cd95SJonas Devlieghere #define LLDB_PROCESS_Lanai(op) 13050c9cd95SJonas Devlieghere #define LLDB_PROCESS_MSP430(op) 13150c9cd95SJonas Devlieghere #define LLDB_PROCESS_NVPTX(op) 13250c9cd95SJonas Devlieghere #define LLDB_PROCESS_RISCV(op) 13350c9cd95SJonas Devlieghere #define LLDB_PROCESS_Sparc(op) 13450c9cd95SJonas Devlieghere #define LLDB_PROCESS_WebAssembly(op) 13550c9cd95SJonas Devlieghere #define LLDB_PROCESS_XCore(op) 13650c9cd95SJonas Devlieghere 137936c6242SJonas Devlieghere llvm::Error SystemInitializerFull::Initialize() { 138936c6242SJonas Devlieghere if (auto e = SystemInitializerCommon::Initialize()) 13915eacd74SJonas Devlieghere return e; 140fa3fa5b9SPavel Labath 14150c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFileBreakpad); 14250c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFileELF); 14350c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFileMachO); 14450c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFilePECOFF); 14550c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFileWasm); 14650c9cd95SJonas Devlieghere 14750c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectContainerBSDArchive); 14850c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectContainerUniversalMachO); 14950c9cd95SJonas Devlieghere 15050c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ScriptInterpreterNone); 15150c9cd95SJonas Devlieghere 15250c9cd95SJonas Devlieghere #if LLDB_ENABLE_PYTHON 15350c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(OperatingSystemPython); 15450c9cd95SJonas Devlieghere #endif 15550c9cd95SJonas Devlieghere 15650c9cd95SJonas Devlieghere #if LLDB_ENABLE_PYTHON 15750c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ScriptInterpreterPython); 15850c9cd95SJonas Devlieghere #endif 15950c9cd95SJonas Devlieghere 16050c9cd95SJonas Devlieghere #if LLDB_ENABLE_LUA 16150c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ScriptInterpreterLua); 16250c9cd95SJonas Devlieghere #endif 16350c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformFreeBSD); 16450c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformLinux); 16550c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformNetBSD); 16650c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformOpenBSD); 16750c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformWindows); 16850c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformAndroid); 16950c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformMacOSX); 17050c9cd95SJonas Devlieghere 171e6e2bb38SZachary Turner // Initialize LLVM and Clang 172e6e2bb38SZachary Turner llvm::InitializeAllTargets(); 173e6e2bb38SZachary Turner llvm::InitializeAllAsmPrinters(); 174e6e2bb38SZachary Turner llvm::InitializeAllTargetMCs(); 175e6e2bb38SZachary Turner llvm::InitializeAllDisassemblers(); 176e6e2bb38SZachary Turner 17750c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(TypeSystemClang); 17856939cb3SGreg Clayton 17950c9cd95SJonas Devlieghere #define LLVM_TARGET(t) LLDB_PROCESS_##t(LLDB_PLUGIN_INITIALIZE) 18050c9cd95SJonas Devlieghere #include "llvm/Config/Targets.def" 18150c9cd95SJonas Devlieghere 18250c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ArchitectureArm); 18350c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ArchitectureMips); 18450c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ArchitecturePPC64); 18550c9cd95SJonas Devlieghere 18650c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DisassemblerLLVMC); 18750c9cd95SJonas Devlieghere 18850c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(JITLoaderGDB); 18950c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessElfCore); 19050c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessMachCore); 19150c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessMinidump); 19250c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(MemoryHistoryASan); 19350c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeASan); 19450c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeTSan); 19550c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeUBSan); 19650c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeMainThreadChecker); 19750c9cd95SJonas Devlieghere 19850c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolVendorELF); 19950c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolFileBreakpad); 20050c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolFileDWARF); 20150c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolFilePDB); 20250c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolFileSymtab); 20350c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolVendorWasm); 20450c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(UnwindAssemblyInstEmulation); 20550c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(UnwindAssembly_x86); 20650c9cd95SJonas Devlieghere 20750c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(EmulateInstructionARM); 20850c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(EmulateInstructionARM64); 20950c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(EmulateInstructionMIPS); 21050c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(EmulateInstructionMIPS64); 21150c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(EmulateInstructionPPC64); 21250c9cd95SJonas Devlieghere 21350c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ItaniumABILanguageRuntime); 21450c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(AppleObjCRuntime); 21550c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SystemRuntimeMacOSX); 21650c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(RenderScriptRuntime); 21750c9cd95SJonas Devlieghere 21850c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(CPlusPlusLanguage); 21950c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjCLanguage); 22050c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjCPlusPlusLanguage); 22150c9cd95SJonas Devlieghere 22250c9cd95SJonas Devlieghere #if defined(_WIN32) 22350c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessWindows); 22450c9cd95SJonas Devlieghere #endif 22550c9cd95SJonas Devlieghere #if defined(__FreeBSD__) 22650c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessFreeBSD); 22750c9cd95SJonas Devlieghere #endif 22850c9cd95SJonas Devlieghere #if defined(__APPLE__) 22950c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolVendorMacOSX); 23050c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessKDP); 23150c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderDarwinKernel); 23250c9cd95SJonas Devlieghere #endif 23350c9cd95SJonas Devlieghere 23450c9cd95SJonas Devlieghere // This plugin is valid on any host that talks to a Darwin remote. It 23550c9cd95SJonas Devlieghere // shouldn't be limited to __APPLE__. 23650c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(StructuredDataDarwinLog); 23750c9cd95SJonas Devlieghere 23850c9cd95SJonas Devlieghere // Platform agnostic plugins 23950c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformRemoteGDBServer); 24050c9cd95SJonas Devlieghere 24150c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessGDBRemote); 24250c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderMacOSXDYLD); 24350c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderPOSIXDYLD); 24450c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderWasmDYLD); // Before DynamicLoaderStatic. 24550c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderStatic); 24650c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderWindowsDYLD); 24750c9cd95SJonas Devlieghere 24850c9cd95SJonas Devlieghere // Scan for any system or user LLDB plug-ins 249e6e2bb38SZachary Turner PluginManager::Initialize(); 250e6e2bb38SZachary Turner 25105097246SAdrian Prantl // The process settings need to know about installed plug-ins, so the 25250c9cd95SJonas Devlieghere // Settings must be initialized 25350c9cd95SJonas Devlieghere // AFTER PluginManager::Initialize is called. 25450c9cd95SJonas Devlieghere 255e6e2bb38SZachary Turner Debugger::SettingsInitialize(); 25615eacd74SJonas Devlieghere 25715eacd74SJonas Devlieghere return llvm::Error::success(); 258e6e2bb38SZachary Turner } 259e6e2bb38SZachary Turner 260b9c1b51eSKate Stone void SystemInitializerFull::Terminate() { 261f9d16476SPavel Labath static Timer::Category func_cat(LLVM_PRETTY_FUNCTION); 262f9d16476SPavel Labath Timer scoped_timer(func_cat, LLVM_PRETTY_FUNCTION); 263e6e2bb38SZachary Turner 264e6e2bb38SZachary Turner Debugger::SettingsTerminate(); 265e6e2bb38SZachary Turner 26650c9cd95SJonas Devlieghere // Terminate and unload and loaded system or user LLDB plug-ins 267e6e2bb38SZachary Turner PluginManager::Terminate(); 26856939cb3SGreg Clayton 26950c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(TypeSystemClang); 27050c9cd95SJonas Devlieghere 27150c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ArchitectureArm); 27250c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ArchitectureMips); 27350c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ArchitecturePPC64); 27450c9cd95SJonas Devlieghere 27550c9cd95SJonas Devlieghere #define LLVM_TARGET(t) LLDB_PROCESS_##t(LLDB_PLUGIN_TERMINATE) 27650c9cd95SJonas Devlieghere #include "llvm/Config/Targets.def" 27750c9cd95SJonas Devlieghere 27850c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DisassemblerLLVMC); 27950c9cd95SJonas Devlieghere 28050c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(JITLoaderGDB); 28150c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessElfCore); 28250c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessMachCore); 28350c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessMinidump); 28450c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(MemoryHistoryASan); 28550c9cd95SJonas Devlieghere 28650c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeASan); 28750c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeTSan); 28850c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeUBSan); 28950c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeMainThreadChecker); 29050c9cd95SJonas Devlieghere 29150c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolVendorWasm); 29250c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolVendorELF); 29350c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolFileBreakpad); 29450c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolFileDWARF); 29550c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolFilePDB); 29650c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolFileSymtab); 29750c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(UnwindAssembly_x86); 29850c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(UnwindAssemblyInstEmulation); 29950c9cd95SJonas Devlieghere 30050c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(EmulateInstructionARM); 30150c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(EmulateInstructionARM64); 30250c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(EmulateInstructionMIPS); 30350c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(EmulateInstructionMIPS64); 30450c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(EmulateInstructionPPC64); 30550c9cd95SJonas Devlieghere 30650c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ItaniumABILanguageRuntime); 30750c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(AppleObjCRuntime); 30850c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SystemRuntimeMacOSX); 30950c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(RenderScriptRuntime); 31050c9cd95SJonas Devlieghere 31150c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(CPlusPlusLanguage); 31250c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjCLanguage); 31350c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjCPlusPlusLanguage); 31450c9cd95SJonas Devlieghere 31550c9cd95SJonas Devlieghere #if defined(__APPLE__) 31650c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderDarwinKernel); 31750c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessKDP); 31850c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolVendorMacOSX); 31950c9cd95SJonas Devlieghere #endif 32050c9cd95SJonas Devlieghere 32150c9cd95SJonas Devlieghere #if defined(__FreeBSD__) 32250c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessFreeBSD); 32350c9cd95SJonas Devlieghere #endif 32450c9cd95SJonas Devlieghere Debugger::SettingsTerminate(); 32550c9cd95SJonas Devlieghere 32650c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformRemoteGDBServer); 32750c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessGDBRemote); 32850c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(StructuredDataDarwinLog); 32950c9cd95SJonas Devlieghere 33050c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderMacOSXDYLD); 33150c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderPOSIXDYLD); 33250c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderWasmDYLD); 33350c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderStatic); 33450c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderWindowsDYLD); 33550c9cd95SJonas Devlieghere 33650c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformFreeBSD); 33750c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformLinux); 33850c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformNetBSD); 33950c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformOpenBSD); 34050c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformWindows); 34150c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformAndroid); 34250c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformMacOSX); 34350c9cd95SJonas Devlieghere 34450c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFileBreakpad); 34550c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFileELF); 34650c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFileMachO); 34750c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFilePECOFF); 34850c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFileWasm); 34950c9cd95SJonas Devlieghere 35050c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectContainerBSDArchive); 35150c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectContainerUniversalMachO); 35250c9cd95SJonas Devlieghere 35350c9cd95SJonas Devlieghere #if LLDB_ENABLE_PYTHON 35450c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(OperatingSystemPython); 35550c9cd95SJonas Devlieghere #endif 35650c9cd95SJonas Devlieghere 35750c9cd95SJonas Devlieghere #if LLDB_ENABLE_PYTHON 35850c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ScriptInterpreterPython); 35950c9cd95SJonas Devlieghere #endif 36050c9cd95SJonas Devlieghere 36150c9cd95SJonas Devlieghere #if LLDB_ENABLE_LUA 36250c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ScriptInterpreterLua); 36350c9cd95SJonas Devlieghere #endif 36450c9cd95SJonas Devlieghere 36550c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ScriptInterpreterNone); 366fbb4d1e4SJonas Devlieghere 367e6e2bb38SZachary Turner // Now shutdown the common parts, in reverse order. 368e6e2bb38SZachary Turner SystemInitializerCommon::Terminate(); 369e6e2bb38SZachary Turner } 370