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*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIMacOSX_arm64); 28*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABISysV_arm64); 29*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIMacOSX_arm); 30*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABISysV_arm); 31*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABISysV_arc); 32*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABISysV_hexagon); 33*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABISysV_mips); 34*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABISysV_mips64); 35*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABISysV_ppc); 36*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABISysV_ppc64); 37*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABISysV_s390x); 38*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIMacOSX_i386); 39*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABISysV_i386); 40*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABISysV_x86_64); 41*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ABIWindows_x86_64); 42*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFileBreakpad); 43*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFileELF); 44*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFileMachO); 45*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFilePECOFF); 46*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectFileWasm); 47*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectContainerBSDArchive); 48*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjectContainerUniversalMachO); 49*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ScriptInterpreterNone); 50*3e70a919SJonas Devlieghere #if LLDB_ENABLE_PYTHON 51*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(OperatingSystemPython); 52*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ScriptInterpreterPython); 53*3e70a919SJonas Devlieghere #endif 54*3e70a919SJonas Devlieghere #if LLDB_ENABLE_LUA 55*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ScriptInterpreterLua); 56*3e70a919SJonas Devlieghere #endif 57*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformFreeBSD); 58*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformLinux); 59*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformNetBSD); 60*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformOpenBSD); 61*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformWindows); 62*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformAndroid); 63*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformRemoteiOS); 64*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformMacOSX); 65*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(TypeSystemClang); 66*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ArchitectureArm); 67*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ArchitectureMips); 68*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ArchitecturePPC64); 69*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(DisassemblerLLVMC); 70*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(JITLoaderGDB); 71*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessElfCore); 72*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessMachCore); 73*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessMinidump); 74*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(MemoryHistoryASan); 75*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstrumentationRuntimeASan); 76*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstrumentationRuntimeTSan); 77*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstrumentationRuntimeUBSan); 78*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(InstrumentationRuntimeMainThreadChecker); 79*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolVendorELF); 80*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolFileBreakpad); 81*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolFileDWARF); 82*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolFilePDB); 83*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolFileSymtab); 84*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolVendorWasm); 85*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(UnwindAssemblyInstEmulation); 86*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(UnwindAssembly_x86); 87*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(EmulateInstructionARM); 88*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(EmulateInstructionARM64); 89*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(EmulateInstructionMIPS); 90*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(EmulateInstructionMIPS64); 91*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(EmulateInstructionPPC64); 92*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolFileDWARFDebugMap); 93*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ItaniumABILanguageRuntime); 94*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(AppleObjCRuntime); 95*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(SystemRuntimeMacOSX); 96*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(RenderScriptRuntime); 97*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(CPlusPlusLanguage); 98*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjCLanguage); 99*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ObjCPlusPlusLanguage); 100*3e70a919SJonas Devlieghere #if defined(_WIN32) 101*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessWindows); 102*3e70a919SJonas Devlieghere #endif 103*3e70a919SJonas Devlieghere #if defined(__FreeBSD__) 104*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessFreeBSD); 105*3e70a919SJonas Devlieghere #endif 106*3e70a919SJonas Devlieghere #if defined(__APPLE__) 107*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(SymbolVendorMacOSX); 108*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessKDP); 109*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderDarwinKernel); 110*3e70a919SJonas Devlieghere #endif 111*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(StructuredDataDarwinLog); 112*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(PlatformRemoteGDBServer); 113*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(ProcessGDBRemote); 114*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderMacOSXDYLD); 115*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderMacOS); 116*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderPOSIXDYLD); 117*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderStatic); 118*3e70a919SJonas Devlieghere LLDB_PLUGIN_DECLARE(DynamicLoaderWindowsDYLD); 119*3e70a919SJonas Devlieghere 120e6e2bb38SZachary Turner using namespace lldb_private; 121e6e2bb38SZachary Turner 122b9c1b51eSKate Stone SystemInitializerFull::SystemInitializerFull() {} 123e6e2bb38SZachary Turner 124b9c1b51eSKate Stone SystemInitializerFull::~SystemInitializerFull() {} 125e6e2bb38SZachary Turner 1268865ebb5SPavel Labath #define LLDB_PROCESS_AArch64(op) \ 127fbb4d1e4SJonas Devlieghere op(ABIMacOSX_arm64); \ 128fbb4d1e4SJonas Devlieghere op(ABISysV_arm64); 1298865ebb5SPavel Labath #define LLDB_PROCESS_ARM(op) \ 130fbb4d1e4SJonas Devlieghere op(ABIMacOSX_arm); \ 131fbb4d1e4SJonas Devlieghere op(ABISysV_arm); 132fbb4d1e4SJonas Devlieghere #define LLDB_PROCESS_ARC(op) op(ABISysV_arc); 133fbb4d1e4SJonas Devlieghere #define LLDB_PROCESS_Hexagon(op) op(ABISysV_hexagon); 1348865ebb5SPavel Labath #define LLDB_PROCESS_Mips(op) \ 135fbb4d1e4SJonas Devlieghere op(ABISysV_mips); \ 136fbb4d1e4SJonas Devlieghere op(ABISysV_mips64); 1378865ebb5SPavel Labath #define LLDB_PROCESS_PowerPC(op) \ 138fbb4d1e4SJonas Devlieghere op(ABISysV_ppc); \ 139fbb4d1e4SJonas Devlieghere op(ABISysV_ppc64); 140fbb4d1e4SJonas Devlieghere #define LLDB_PROCESS_SystemZ(op) op(ABISysV_s390x); 1418865ebb5SPavel Labath #define LLDB_PROCESS_X86(op) \ 142fbb4d1e4SJonas Devlieghere op(ABIMacOSX_i386); \ 143fbb4d1e4SJonas Devlieghere op(ABISysV_i386); \ 144fbb4d1e4SJonas Devlieghere op(ABISysV_x86_64); \ 145fbb4d1e4SJonas Devlieghere op(ABIWindows_x86_64); 1468865ebb5SPavel Labath 1478865ebb5SPavel Labath #define LLDB_PROCESS_AMDGPU(op) 148e8f06131SPavel Labath #define LLDB_PROCESS_AVR(op) 1498865ebb5SPavel Labath #define LLDB_PROCESS_BPF(op) 1508865ebb5SPavel Labath #define LLDB_PROCESS_Lanai(op) 1518865ebb5SPavel Labath #define LLDB_PROCESS_MSP430(op) 1528865ebb5SPavel Labath #define LLDB_PROCESS_NVPTX(op) 1538865ebb5SPavel Labath #define LLDB_PROCESS_RISCV(op) 1548865ebb5SPavel Labath #define LLDB_PROCESS_Sparc(op) 1558865ebb5SPavel Labath #define LLDB_PROCESS_WebAssembly(op) 1568865ebb5SPavel Labath #define LLDB_PROCESS_XCore(op) 1578865ebb5SPavel Labath 158936c6242SJonas Devlieghere llvm::Error SystemInitializerFull::Initialize() { 159936c6242SJonas Devlieghere if (auto e = SystemInitializerCommon::Initialize()) 16015eacd74SJonas Devlieghere return e; 161fa3fa5b9SPavel Labath 162fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFileBreakpad); 163fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFileELF); 164fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFileMachO); 165fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFilePECOFF); 166fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectFileWasm); 167fa3fa5b9SPavel Labath 168fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectContainerBSDArchive); 169fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjectContainerUniversalMachO); 170c7c3cf68SSaleem Abdulrasool 171fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ScriptInterpreterNone); 1722c1f46dcSZachary Turner 1734e26cf2cSJonas Devlieghere #if LLDB_ENABLE_PYTHON 174fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(OperatingSystemPython); 175a7760cb5SPavel Labath #endif 176a7760cb5SPavel Labath 1774e26cf2cSJonas Devlieghere #if LLDB_ENABLE_PYTHON 178fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ScriptInterpreterPython); 1792c1f46dcSZachary Turner #endif 180e6e2bb38SZachary Turner 18167de8962SJonas Devlieghere #if LLDB_ENABLE_LUA 182fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ScriptInterpreterLua); 18367de8962SJonas Devlieghere #endif 184fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformFreeBSD); 185fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformLinux); 186fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformNetBSD); 187fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformOpenBSD); 188fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformWindows); 189fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformAndroid); 190fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformRemoteiOS); 191fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformMacOSX); 192f1763537SPavel Labath 193e6e2bb38SZachary Turner // Initialize LLVM and Clang 194e6e2bb38SZachary Turner llvm::InitializeAllTargets(); 195e6e2bb38SZachary Turner llvm::InitializeAllAsmPrinters(); 196e6e2bb38SZachary Turner llvm::InitializeAllTargetMCs(); 197e6e2bb38SZachary Turner llvm::InitializeAllDisassemblers(); 198e6e2bb38SZachary Turner 199fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(TypeSystemClang); 20056939cb3SGreg Clayton 201fbb4d1e4SJonas Devlieghere #define LLVM_TARGET(t) LLDB_PROCESS_##t(LLDB_PLUGIN_INITIALIZE) 2028865ebb5SPavel Labath #include "llvm/Config/Targets.def" 20313e37d4dSPavel Labath 204fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ArchitectureArm); 205fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ArchitectureMips); 206fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ArchitecturePPC64); 20713e37d4dSPavel Labath 208fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DisassemblerLLVMC); 209e6e2bb38SZachary Turner 210fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(JITLoaderGDB); 211fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessElfCore); 212fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessMachCore); 213fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessMinidump); 214fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(MemoryHistoryASan); 215fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeASan); 216fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeTSan); 217fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeUBSan); 218fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeMainThreadChecker); 219e6e2bb38SZachary Turner 220fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolVendorELF); 221fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolFileBreakpad); 222fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolFileDWARF); 223fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolFilePDB); 224fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolFileSymtab); 225fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolVendorWasm); 226fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(UnwindAssemblyInstEmulation); 227fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(UnwindAssembly_x86); 228e24d8c55SSaleem Abdulrasool 229fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(EmulateInstructionARM); 230fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(EmulateInstructionARM64); 231fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(EmulateInstructionMIPS); 232fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(EmulateInstructionMIPS64); 233fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(EmulateInstructionPPC64); 234e24d8c55SSaleem Abdulrasool 235fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolFileDWARFDebugMap); 236fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ItaniumABILanguageRuntime); 237fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(AppleObjCRuntime); 238fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SystemRuntimeMacOSX); 239fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(RenderScriptRuntime); 240e6e2bb38SZachary Turner 241fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(CPlusPlusLanguage); 242fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjCLanguage); 243fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ObjCPlusPlusLanguage); 244980c0484SEnrico Granata 245f6ee79c9SHafiz Abid Qadeer #if defined(_WIN32) 246fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessWindows); 247e6e2bb38SZachary Turner #endif 248e6e2bb38SZachary Turner #if defined(__FreeBSD__) 249fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessFreeBSD); 250e6e2bb38SZachary Turner #endif 251e6e2bb38SZachary Turner #if defined(__APPLE__) 252fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(SymbolVendorMacOSX); 253fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessKDP); 254fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderDarwinKernel); 255e6e2bb38SZachary Turner #endif 25675930019STodd Fiala 25705097246SAdrian Prantl // This plugin is valid on any host that talks to a Darwin remote. It 25805097246SAdrian Prantl // shouldn't be limited to __APPLE__. 259fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(StructuredDataDarwinLog); 26075930019STodd Fiala 261e6e2bb38SZachary Turner // Platform agnostic plugins 262fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(PlatformRemoteGDBServer); 263e6e2bb38SZachary Turner 264fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(ProcessGDBRemote); 265fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderMacOSXDYLD); 266fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderMacOS); 267fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderPOSIXDYLD); 268fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderStatic); 269fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_INITIALIZE(DynamicLoaderWindowsDYLD); 270e6e2bb38SZachary Turner 271e6e2bb38SZachary Turner // Scan for any system or user LLDB plug-ins 272e6e2bb38SZachary Turner PluginManager::Initialize(); 273e6e2bb38SZachary Turner 27405097246SAdrian Prantl // The process settings need to know about installed plug-ins, so the 27505097246SAdrian Prantl // Settings must be initialized 276e6e2bb38SZachary Turner // AFTER PluginManager::Initialize is called. 277e6e2bb38SZachary Turner 278e6e2bb38SZachary Turner Debugger::SettingsInitialize(); 27915eacd74SJonas Devlieghere 28015eacd74SJonas Devlieghere return llvm::Error::success(); 281e6e2bb38SZachary Turner } 282e6e2bb38SZachary Turner 283b9c1b51eSKate Stone void SystemInitializerFull::Terminate() { 284f9d16476SPavel Labath static Timer::Category func_cat(LLVM_PRETTY_FUNCTION); 285f9d16476SPavel Labath Timer scoped_timer(func_cat, LLVM_PRETTY_FUNCTION); 286e6e2bb38SZachary Turner 287e6e2bb38SZachary Turner Debugger::SettingsTerminate(); 288e6e2bb38SZachary Turner 289e6e2bb38SZachary Turner // Terminate and unload and loaded system or user LLDB plug-ins 290e6e2bb38SZachary Turner PluginManager::Terminate(); 29156939cb3SGreg Clayton 292fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(TypeSystemClang); 29356939cb3SGreg Clayton 294fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ArchitectureArm); 295fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ArchitectureMips); 296fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ArchitecturePPC64); 29798fc5487STatyana Krasnukha 298fbb4d1e4SJonas Devlieghere #define LLVM_TARGET(t) LLDB_PROCESS_##t(LLDB_PLUGIN_TERMINATE) 2998865ebb5SPavel Labath #include "llvm/Config/Targets.def" 300d0b44dbeSPavel Labath 301fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DisassemblerLLVMC); 302e6e2bb38SZachary Turner 303fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(JITLoaderGDB); 304fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessElfCore); 305fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessMachCore); 306fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessMinidump); 307fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(MemoryHistoryASan); 308fc1e8551SJonas Devlieghere 309fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeASan); 310fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeTSan); 311fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeUBSan); 312fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeMainThreadChecker); 313e24d8c55SSaleem Abdulrasool 314fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolVendorWasm); 315fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolVendorELF); 316fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolFileBreakpad); 317fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolFileDWARF); 318fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolFilePDB); 319fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolFileSymtab); 320fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(UnwindAssembly_x86); 321fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(UnwindAssemblyInstEmulation); 322e24d8c55SSaleem Abdulrasool 323fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(EmulateInstructionARM); 324fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(EmulateInstructionARM64); 325fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(EmulateInstructionMIPS); 326fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(EmulateInstructionMIPS64); 327fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(EmulateInstructionPPC64); 328e6e2bb38SZachary Turner 329fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolFileDWARFDebugMap); 330fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ItaniumABILanguageRuntime); 331fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(AppleObjCRuntime); 332fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SystemRuntimeMacOSX); 333fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(RenderScriptRuntime); 334fbb4d1e4SJonas Devlieghere 335fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(CPlusPlusLanguage); 336fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjCLanguage); 337fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjCPlusPlusLanguage); 338980c0484SEnrico Granata 339e6e2bb38SZachary Turner #if defined(__APPLE__) 340fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderDarwinKernel); 341fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessKDP); 342fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(SymbolVendorMacOSX); 343e6e2bb38SZachary Turner #endif 344e6e2bb38SZachary Turner 345e6e2bb38SZachary Turner #if defined(__FreeBSD__) 346fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessFreeBSD); 347e6e2bb38SZachary Turner #endif 348e6e2bb38SZachary Turner Debugger::SettingsTerminate(); 349e6e2bb38SZachary Turner 350fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformRemoteGDBServer); 351fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ProcessGDBRemote); 352fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(StructuredDataDarwinLog); 35375930019STodd Fiala 354fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderMacOSXDYLD); 355fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderMacOS); 356fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderPOSIXDYLD); 357fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderStatic); 358fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(DynamicLoaderWindowsDYLD); 359e6e2bb38SZachary Turner 360fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformFreeBSD); 361fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformLinux); 362fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformNetBSD); 363fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformOpenBSD); 364fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformWindows); 365fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformAndroid); 366fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformRemoteiOS); 367fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(PlatformMacOSX); 368f1763537SPavel Labath 369fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFileBreakpad); 370fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFileELF); 371fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFileMachO); 372fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFilePECOFF); 373fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectFileWasm); 374fa3fa5b9SPavel Labath 375fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectContainerBSDArchive); 376fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ObjectContainerUniversalMachO); 377c7c3cf68SSaleem Abdulrasool 378f2d41ad0SRaphael Isemann #if LLDB_ENABLE_PYTHON 379fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(OperatingSystemPython); 380f2d41ad0SRaphael Isemann #endif 381f2d41ad0SRaphael Isemann 382f2d41ad0SRaphael Isemann #if LLDB_ENABLE_PYTHON 383fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ScriptInterpreterPython); 384f2d41ad0SRaphael Isemann #endif 385f2d41ad0SRaphael Isemann 386f2d41ad0SRaphael Isemann #if LLDB_ENABLE_LUA 387fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ScriptInterpreterLua); 388f2d41ad0SRaphael Isemann #endif 389f2d41ad0SRaphael Isemann 390fbb4d1e4SJonas Devlieghere LLDB_PLUGIN_TERMINATE(ScriptInterpreterNone); 391fbb4d1e4SJonas Devlieghere 392e6e2bb38SZachary Turner // Now shutdown the common parts, in reverse order. 393e6e2bb38SZachary Turner SystemInitializerCommon::Terminate(); 394e6e2bb38SZachary Turner } 395