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 27*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIAArch64) 28*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIARM) 29*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABISysV_arc) 30*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABISysV_hexagon) 31*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIMips) 32*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIPowerPC) 33*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABISysV_s390x) 34*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIX86) 35*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFileBreakpad) 36*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFileELF) 37*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFileMachO) 38*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFilePECOFF) 39*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFileWasm) 40*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectContainerBSDArchive) 41*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectContainerUniversalMachO) 42*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ScriptInterpreterNone) 43*50c9cd95SJonas Devlieghere #if LLDB_ENABLE_PYTHON 44*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(OperatingSystemPython) 45*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ScriptInterpreterPython) 46*50c9cd95SJonas Devlieghere #endif 47*50c9cd95SJonas Devlieghere #if LLDB_ENABLE_LUA 48*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ScriptInterpreterLua) 49*50c9cd95SJonas Devlieghere #endif 50*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformFreeBSD) 51*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformLinux) 52*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformNetBSD) 53*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformOpenBSD) 54*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformWindows) 55*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformAndroid) 56*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformMacOSX) 57*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(TypeSystemClang) 58*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ArchitectureArm) 59*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ArchitectureMips) 60*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ArchitecturePPC64) 61*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DisassemblerLLVMC) 62*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(JITLoaderGDB) 63*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessElfCore) 64*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessMachCore) 65*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessMinidump) 66*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(MemoryHistoryASan) 67*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstrumentationRuntimeASan) 68*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstrumentationRuntimeTSan) 69*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstrumentationRuntimeUBSan) 70*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstrumentationRuntimeMainThreadChecker) 71*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolVendorELF) 72*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolFileBreakpad) 73*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolFileDWARF) 74*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolFilePDB) 75*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolFileSymtab) 76*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolVendorWasm) 77*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(UnwindAssemblyInstEmulation) 78*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(UnwindAssembly_x86) 79*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(EmulateInstructionARM) 80*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(EmulateInstructionARM64) 81*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(EmulateInstructionMIPS) 82*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(EmulateInstructionMIPS64) 83*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(EmulateInstructionPPC64) 84*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ItaniumABILanguageRuntime) 85*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(AppleObjCRuntime) 86*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SystemRuntimeMacOSX) 87*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(RenderScriptRuntime) 88*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(CPlusPlusLanguage) 89*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjCLanguage) 90*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjCPlusPlusLanguage) 91*50c9cd95SJonas Devlieghere #if defined(_WIN32) 92*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessWindows) 93*50c9cd95SJonas Devlieghere #endif 94*50c9cd95SJonas Devlieghere #if defined(__FreeBSD__) 95*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessFreeBSD) 96*50c9cd95SJonas Devlieghere #endif 97*50c9cd95SJonas Devlieghere #if defined(__APPLE__) 98*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolVendorMacOSX) 99*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessKDP) 100*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderDarwinKernel) 101*50c9cd95SJonas Devlieghere #endif 102*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(StructuredDataDarwinLog) 103*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformRemoteGDBServer) 104*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessGDBRemote) 105*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderMacOSXDYLD) 106*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderPOSIXDYLD) 107*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderStatic) 108*50c9cd95SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderWasmDYLD) 109*50c9cd95SJonas 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 117*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_AArch64(op) op(ABIAArch64); 118*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_ARM(op) op(ABIARM); 119*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_ARC(op) op(ABISysV_arc); 120*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_Hexagon(op) op(ABISysV_hexagon); 121*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_Mips(op) op(ABIMips); 122*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_PowerPC(op) op(ABIPowerPC); 123*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_SystemZ(op) op(ABISysV_s390x); 124*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_X86(op) op(ABIX86); 125*50c9cd95SJonas Devlieghere 126*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_AMDGPU(op) 127*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_AVR(op) 128*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_BPF(op) 129*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_Lanai(op) 130*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_MSP430(op) 131*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_NVPTX(op) 132*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_RISCV(op) 133*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_Sparc(op) 134*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_WebAssembly(op) 135*50c9cd95SJonas Devlieghere #define LLDB_PROCESS_XCore(op) 136*50c9cd95SJonas Devlieghere 137936c6242SJonas Devlieghere llvm::Error SystemInitializerFull::Initialize() { 138936c6242SJonas Devlieghere if (auto e = SystemInitializerCommon::Initialize()) 13915eacd74SJonas Devlieghere return e; 140fa3fa5b9SPavel Labath 141*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFileBreakpad); 142*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFileELF); 143*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFileMachO); 144*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFilePECOFF); 145*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFileWasm); 146*50c9cd95SJonas Devlieghere 147*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectContainerBSDArchive); 148*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectContainerUniversalMachO); 149*50c9cd95SJonas Devlieghere 150*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ScriptInterpreterNone); 151*50c9cd95SJonas Devlieghere 152*50c9cd95SJonas Devlieghere #if LLDB_ENABLE_PYTHON 153*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(OperatingSystemPython); 154*50c9cd95SJonas Devlieghere #endif 155*50c9cd95SJonas Devlieghere 156*50c9cd95SJonas Devlieghere #if LLDB_ENABLE_PYTHON 157*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ScriptInterpreterPython); 158*50c9cd95SJonas Devlieghere #endif 159*50c9cd95SJonas Devlieghere 160*50c9cd95SJonas Devlieghere #if LLDB_ENABLE_LUA 161*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ScriptInterpreterLua); 162*50c9cd95SJonas Devlieghere #endif 163*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformFreeBSD); 164*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformLinux); 165*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformNetBSD); 166*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformOpenBSD); 167*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformWindows); 168*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformAndroid); 169*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformMacOSX); 170*50c9cd95SJonas 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 177*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(TypeSystemClang); 17856939cb3SGreg Clayton 179*50c9cd95SJonas Devlieghere #define LLVM_TARGET(t) LLDB_PROCESS_##t(LLDB_PLUGIN_INITIALIZE) 180*50c9cd95SJonas Devlieghere #include "llvm/Config/Targets.def" 181*50c9cd95SJonas Devlieghere 182*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ArchitectureArm); 183*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ArchitectureMips); 184*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ArchitecturePPC64); 185*50c9cd95SJonas Devlieghere 186*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DisassemblerLLVMC); 187*50c9cd95SJonas Devlieghere 188*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(JITLoaderGDB); 189*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessElfCore); 190*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessMachCore); 191*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessMinidump); 192*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(MemoryHistoryASan); 193*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeASan); 194*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeTSan); 195*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeUBSan); 196*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeMainThreadChecker); 197*50c9cd95SJonas Devlieghere 198*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolVendorELF); 199*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolFileBreakpad); 200*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolFileDWARF); 201*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolFilePDB); 202*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolFileSymtab); 203*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolVendorWasm); 204*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(UnwindAssemblyInstEmulation); 205*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(UnwindAssembly_x86); 206*50c9cd95SJonas Devlieghere 207*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(EmulateInstructionARM); 208*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(EmulateInstructionARM64); 209*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(EmulateInstructionMIPS); 210*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(EmulateInstructionMIPS64); 211*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(EmulateInstructionPPC64); 212*50c9cd95SJonas Devlieghere 213*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ItaniumABILanguageRuntime); 214*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(AppleObjCRuntime); 215*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SystemRuntimeMacOSX); 216*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(RenderScriptRuntime); 217*50c9cd95SJonas Devlieghere 218*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(CPlusPlusLanguage); 219*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjCLanguage); 220*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjCPlusPlusLanguage); 221*50c9cd95SJonas Devlieghere 222*50c9cd95SJonas Devlieghere #if defined(_WIN32) 223*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessWindows); 224*50c9cd95SJonas Devlieghere #endif 225*50c9cd95SJonas Devlieghere #if defined(__FreeBSD__) 226*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessFreeBSD); 227*50c9cd95SJonas Devlieghere #endif 228*50c9cd95SJonas Devlieghere #if defined(__APPLE__) 229*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolVendorMacOSX); 230*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessKDP); 231*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderDarwinKernel); 232*50c9cd95SJonas Devlieghere #endif 233*50c9cd95SJonas Devlieghere 234*50c9cd95SJonas Devlieghere // This plugin is valid on any host that talks to a Darwin remote. It 235*50c9cd95SJonas Devlieghere // shouldn't be limited to __APPLE__. 236*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(StructuredDataDarwinLog); 237*50c9cd95SJonas Devlieghere 238*50c9cd95SJonas Devlieghere // Platform agnostic plugins 239*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformRemoteGDBServer); 240*50c9cd95SJonas Devlieghere 241*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessGDBRemote); 242*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderMacOSXDYLD); 243*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderPOSIXDYLD); 244*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderWasmDYLD); // Before DynamicLoaderStatic. 245*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderStatic); 246*50c9cd95SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderWindowsDYLD); 247*50c9cd95SJonas Devlieghere 248*50c9cd95SJonas 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 252*50c9cd95SJonas Devlieghere // Settings must be initialized 253*50c9cd95SJonas Devlieghere // AFTER PluginManager::Initialize is called. 254*50c9cd95SJonas 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 266*50c9cd95SJonas Devlieghere // Terminate and unload and loaded system or user LLDB plug-ins 267e6e2bb38SZachary Turner PluginManager::Terminate(); 26856939cb3SGreg Clayton 269*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(TypeSystemClang); 270*50c9cd95SJonas Devlieghere 271*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ArchitectureArm); 272*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ArchitectureMips); 273*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ArchitecturePPC64); 274*50c9cd95SJonas Devlieghere 275*50c9cd95SJonas Devlieghere #define LLVM_TARGET(t) LLDB_PROCESS_##t(LLDB_PLUGIN_TERMINATE) 276*50c9cd95SJonas Devlieghere #include "llvm/Config/Targets.def" 277*50c9cd95SJonas Devlieghere 278*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DisassemblerLLVMC); 279*50c9cd95SJonas Devlieghere 280*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(JITLoaderGDB); 281*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessElfCore); 282*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessMachCore); 283*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessMinidump); 284*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(MemoryHistoryASan); 285*50c9cd95SJonas Devlieghere 286*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeASan); 287*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeTSan); 288*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeUBSan); 289*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeMainThreadChecker); 290*50c9cd95SJonas Devlieghere 291*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolVendorWasm); 292*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolVendorELF); 293*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolFileBreakpad); 294*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolFileDWARF); 295*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolFilePDB); 296*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolFileSymtab); 297*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(UnwindAssembly_x86); 298*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(UnwindAssemblyInstEmulation); 299*50c9cd95SJonas Devlieghere 300*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(EmulateInstructionARM); 301*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(EmulateInstructionARM64); 302*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(EmulateInstructionMIPS); 303*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(EmulateInstructionMIPS64); 304*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(EmulateInstructionPPC64); 305*50c9cd95SJonas Devlieghere 306*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ItaniumABILanguageRuntime); 307*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(AppleObjCRuntime); 308*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SystemRuntimeMacOSX); 309*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(RenderScriptRuntime); 310*50c9cd95SJonas Devlieghere 311*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(CPlusPlusLanguage); 312*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjCLanguage); 313*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjCPlusPlusLanguage); 314*50c9cd95SJonas Devlieghere 315*50c9cd95SJonas Devlieghere #if defined(__APPLE__) 316*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderDarwinKernel); 317*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessKDP); 318*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolVendorMacOSX); 319*50c9cd95SJonas Devlieghere #endif 320*50c9cd95SJonas Devlieghere 321*50c9cd95SJonas Devlieghere #if defined(__FreeBSD__) 322*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessFreeBSD); 323*50c9cd95SJonas Devlieghere #endif 324*50c9cd95SJonas Devlieghere Debugger::SettingsTerminate(); 325*50c9cd95SJonas Devlieghere 326*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformRemoteGDBServer); 327*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessGDBRemote); 328*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(StructuredDataDarwinLog); 329*50c9cd95SJonas Devlieghere 330*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderMacOSXDYLD); 331*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderPOSIXDYLD); 332*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderWasmDYLD); 333*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderStatic); 334*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderWindowsDYLD); 335*50c9cd95SJonas Devlieghere 336*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformFreeBSD); 337*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformLinux); 338*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformNetBSD); 339*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformOpenBSD); 340*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformWindows); 341*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformAndroid); 342*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformMacOSX); 343*50c9cd95SJonas Devlieghere 344*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFileBreakpad); 345*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFileELF); 346*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFileMachO); 347*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFilePECOFF); 348*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFileWasm); 349*50c9cd95SJonas Devlieghere 350*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectContainerBSDArchive); 351*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectContainerUniversalMachO); 352*50c9cd95SJonas Devlieghere 353*50c9cd95SJonas Devlieghere #if LLDB_ENABLE_PYTHON 354*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(OperatingSystemPython); 355*50c9cd95SJonas Devlieghere #endif 356*50c9cd95SJonas Devlieghere 357*50c9cd95SJonas Devlieghere #if LLDB_ENABLE_PYTHON 358*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ScriptInterpreterPython); 359*50c9cd95SJonas Devlieghere #endif 360*50c9cd95SJonas Devlieghere 361*50c9cd95SJonas Devlieghere #if LLDB_ENABLE_LUA 362*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ScriptInterpreterLua); 363*50c9cd95SJonas Devlieghere #endif 364*50c9cd95SJonas Devlieghere 365*50c9cd95SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ScriptInterpreterNone); 366fbb4d1e4SJonas Devlieghere 367e6e2bb38SZachary Turner // Now shutdown the common parts, in reverse order. 368e6e2bb38SZachary Turner SystemInitializerCommon::Terminate(); 369e6e2bb38SZachary Turner } 370