aboutsummaryrefslogtreecommitdiff
path: root/lldb/tools/lldb-test/SystemInitializerTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/lldb-test/SystemInitializerTest.cpp')
-rw-r--r--lldb/tools/lldb-test/SystemInitializerTest.cpp290
1 files changed, 272 insertions, 18 deletions
diff --git a/lldb/tools/lldb-test/SystemInitializerTest.cpp b/lldb/tools/lldb-test/SystemInitializerTest.cpp
index cd180b5..b33b086 100644
--- a/lldb/tools/lldb-test/SystemInitializerTest.cpp
+++ b/lldb/tools/lldb-test/SystemInitializerTest.cpp
@@ -17,10 +17,82 @@
#include <string>
-#define LLDB_PLUGIN(p) LLDB_PLUGIN_DECLARE(p)
-#include "Plugins/Plugins.def"
-
+LLDB_PLUGIN_DECLARE(ABIAArch64);
+LLDB_PLUGIN_DECLARE(ABIARM);
+LLDB_PLUGIN_DECLARE(ABISysV_arc);
+LLDB_PLUGIN_DECLARE(ABISysV_hexagon);
+LLDB_PLUGIN_DECLARE(ABIMips);
+LLDB_PLUGIN_DECLARE(ABIPowerPC);
+LLDB_PLUGIN_DECLARE(ABISysV_s390x);
+LLDB_PLUGIN_DECLARE(ABIX86);
+LLDB_PLUGIN_DECLARE(ObjectFileBreakpad)
+LLDB_PLUGIN_DECLARE(ObjectFileELF)
+LLDB_PLUGIN_DECLARE(ObjectFileMachO)
+LLDB_PLUGIN_DECLARE(ObjectFilePECOFF)
+LLDB_PLUGIN_DECLARE(ObjectFileWasm)
+LLDB_PLUGIN_DECLARE(ObjectContainerBSDArchive)
+LLDB_PLUGIN_DECLARE(ObjectContainerUniversalMachO)
LLDB_PLUGIN_DECLARE(ScriptInterpreterNone)
+LLDB_PLUGIN_DECLARE(PlatformFreeBSD)
+LLDB_PLUGIN_DECLARE(PlatformLinux)
+LLDB_PLUGIN_DECLARE(PlatformNetBSD)
+LLDB_PLUGIN_DECLARE(PlatformOpenBSD)
+LLDB_PLUGIN_DECLARE(PlatformWindows)
+LLDB_PLUGIN_DECLARE(PlatformAndroid)
+LLDB_PLUGIN_DECLARE(PlatformMacOSX)
+LLDB_PLUGIN_DECLARE(TypeSystemClang)
+LLDB_PLUGIN_DECLARE(ArchitectureArm)
+LLDB_PLUGIN_DECLARE(ArchitectureMips)
+LLDB_PLUGIN_DECLARE(ArchitecturePPC64)
+LLDB_PLUGIN_DECLARE(DisassemblerLLVMC)
+LLDB_PLUGIN_DECLARE(JITLoaderGDB)
+LLDB_PLUGIN_DECLARE(ProcessElfCore)
+LLDB_PLUGIN_DECLARE(ProcessMachCore)
+LLDB_PLUGIN_DECLARE(ProcessMinidump)
+LLDB_PLUGIN_DECLARE(MemoryHistoryASan)
+LLDB_PLUGIN_DECLARE(InstrumentationRuntimeASan)
+LLDB_PLUGIN_DECLARE(InstrumentationRuntimeTSan)
+LLDB_PLUGIN_DECLARE(InstrumentationRuntimeUBSan)
+LLDB_PLUGIN_DECLARE(InstrumentationRuntimeMainThreadChecker)
+LLDB_PLUGIN_DECLARE(SymbolVendorELF)
+LLDB_PLUGIN_DECLARE(SymbolFileBreakpad)
+LLDB_PLUGIN_DECLARE(SymbolFileDWARF)
+LLDB_PLUGIN_DECLARE(SymbolFilePDB)
+LLDB_PLUGIN_DECLARE(SymbolFileSymtab)
+LLDB_PLUGIN_DECLARE(SymbolVendorWasm)
+LLDB_PLUGIN_DECLARE(UnwindAssemblyInstEmulation)
+LLDB_PLUGIN_DECLARE(UnwindAssembly_x86)
+LLDB_PLUGIN_DECLARE(EmulateInstructionARM)
+LLDB_PLUGIN_DECLARE(EmulateInstructionARM64)
+LLDB_PLUGIN_DECLARE(EmulateInstructionMIPS)
+LLDB_PLUGIN_DECLARE(EmulateInstructionMIPS64)
+LLDB_PLUGIN_DECLARE(EmulateInstructionPPC64)
+LLDB_PLUGIN_DECLARE(ItaniumABILanguageRuntime)
+LLDB_PLUGIN_DECLARE(AppleObjCRuntime)
+LLDB_PLUGIN_DECLARE(SystemRuntimeMacOSX)
+LLDB_PLUGIN_DECLARE(RenderScriptRuntime)
+LLDB_PLUGIN_DECLARE(CPlusPlusLanguage)
+LLDB_PLUGIN_DECLARE(ObjCLanguage)
+LLDB_PLUGIN_DECLARE(ObjCPlusPlusLanguage)
+#if defined(_WIN32)
+LLDB_PLUGIN_DECLARE(ProcessWindows)
+#endif
+#if defined(__FreeBSD__)
+LLDB_PLUGIN_DECLARE(ProcessFreeBSD)
+#endif
+#if defined(__APPLE__)
+LLDB_PLUGIN_DECLARE(SymbolVendorMacOSX)
+LLDB_PLUGIN_DECLARE(ProcessKDP)
+LLDB_PLUGIN_DECLARE(DynamicLoaderDarwinKernel)
+#endif
+LLDB_PLUGIN_DECLARE(StructuredDataDarwinLog)
+LLDB_PLUGIN_DECLARE(PlatformRemoteGDBServer)
+LLDB_PLUGIN_DECLARE(ProcessGDBRemote)
+LLDB_PLUGIN_DECLARE(DynamicLoaderMacOSXDYLD)
+LLDB_PLUGIN_DECLARE(DynamicLoaderPOSIXDYLD)
+LLDB_PLUGIN_DECLARE(DynamicLoaderStatic)
+LLDB_PLUGIN_DECLARE(DynamicLoaderWasmDYLD)
+LLDB_PLUGIN_DECLARE(DynamicLoaderWindowsDYLD)
using namespace lldb_private;
@@ -28,29 +100,133 @@ SystemInitializerTest::SystemInitializerTest() {}
SystemInitializerTest::~SystemInitializerTest() {}
+#define LLDB_PROCESS_AArch64(op) op(ABIAArch64);
+#define LLDB_PROCESS_ARM(op) op(ABIARM);
+#define LLDB_PROCESS_Hexagon(op) op(ABISysV_hexagon);
+#define LLDB_PROCESS_Mips(op) op(ABIMips);
+#define LLDB_PROCESS_PowerPC(op) op(ABIPowerPC);
+#define LLDB_PROCESS_SystemZ(op) op(ABISysV_s390x);
+#define LLDB_PROCESS_X86(op) op(ABIX86);
+
+#define LLDB_PROCESS_AMDGPU(op)
+#define LLDB_PROCESS_ARC(op)
+#define LLDB_PROCESS_AVR(op)
+#define LLDB_PROCESS_BPF(op)
+#define LLDB_PROCESS_Lanai(op)
+#define LLDB_PROCESS_MSP430(op)
+#define LLDB_PROCESS_NVPTX(op)
+#define LLDB_PROCESS_RISCV(op)
+#define LLDB_PROCESS_Sparc(op)
+#define LLDB_PROCESS_WebAssembly(op)
+#define LLDB_PROCESS_XCore(op)
+
llvm::Error SystemInitializerTest::Initialize() {
if (auto e = SystemInitializerCommon::Initialize())
return e;
+ LLDB_PLUGIN_INITIALIZE(ObjectFileBreakpad);
+ LLDB_PLUGIN_INITIALIZE(ObjectFileELF);
+ LLDB_PLUGIN_INITIALIZE(ObjectFileMachO);
+ LLDB_PLUGIN_INITIALIZE(ObjectFilePECOFF);
+ LLDB_PLUGIN_INITIALIZE(ObjectFileWasm);
+
+ LLDB_PLUGIN_INITIALIZE(ObjectContainerBSDArchive);
+ LLDB_PLUGIN_INITIALIZE(ObjectContainerUniversalMachO);
+
+ LLDB_PLUGIN_INITIALIZE(ScriptInterpreterNone);
+
+ LLDB_PLUGIN_INITIALIZE(PlatformFreeBSD);
+ LLDB_PLUGIN_INITIALIZE(PlatformLinux);
+ LLDB_PLUGIN_INITIALIZE(PlatformNetBSD);
+ LLDB_PLUGIN_INITIALIZE(PlatformOpenBSD);
+ LLDB_PLUGIN_INITIALIZE(PlatformWindows);
+ LLDB_PLUGIN_INITIALIZE(PlatformAndroid);
+ LLDB_PLUGIN_INITIALIZE(PlatformMacOSX);
+
// Initialize LLVM and Clang
llvm::InitializeAllTargets();
llvm::InitializeAllAsmPrinters();
llvm::InitializeAllTargetMCs();
llvm::InitializeAllDisassemblers();
-#define LLDB_SCRIPT_PLUGIN(p)
-#define LLDB_PLUGIN(p) LLDB_PLUGIN_INITIALIZE(p);
-#include "Plugins/Plugins.def"
+ LLDB_PLUGIN_INITIALIZE(TypeSystemClang);
- // We ignored all the script interpreter earlier, so initialize
- // ScriptInterpreterNone explicitly.
- LLDB_PLUGIN_INITIALIZE(ScriptInterpreterNone);
+#define LLVM_TARGET(t) LLDB_PROCESS_##t(LLDB_PLUGIN_INITIALIZE)
+#include "llvm/Config/Targets.def"
+
+ LLDB_PLUGIN_INITIALIZE(ArchitectureArm);
+ LLDB_PLUGIN_INITIALIZE(ArchitectureMips);
+ LLDB_PLUGIN_INITIALIZE(ArchitecturePPC64);
+
+ LLDB_PLUGIN_INITIALIZE(DisassemblerLLVMC);
+
+ LLDB_PLUGIN_INITIALIZE(JITLoaderGDB);
+ LLDB_PLUGIN_INITIALIZE(ProcessElfCore);
+ LLDB_PLUGIN_INITIALIZE(ProcessMachCore);
+ LLDB_PLUGIN_INITIALIZE(ProcessMinidump);
+ LLDB_PLUGIN_INITIALIZE(MemoryHistoryASan);
+ LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeASan);
+ LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeTSan);
+ LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeUBSan);
+ LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeMainThreadChecker);
+
+ LLDB_PLUGIN_INITIALIZE(SymbolVendorELF);
+ LLDB_PLUGIN_INITIALIZE(SymbolFileBreakpad);
+ LLDB_PLUGIN_INITIALIZE(SymbolFileDWARF);
+ LLDB_PLUGIN_INITIALIZE(SymbolFilePDB);
+ LLDB_PLUGIN_INITIALIZE(SymbolFileSymtab);
+ LLDB_PLUGIN_INITIALIZE(SymbolVendorWasm);
+ LLDB_PLUGIN_INITIALIZE(UnwindAssemblyInstEmulation);
+ LLDB_PLUGIN_INITIALIZE(UnwindAssembly_x86);
+
+ LLDB_PLUGIN_INITIALIZE(EmulateInstructionARM);
+ LLDB_PLUGIN_INITIALIZE(EmulateInstructionARM64);
+ LLDB_PLUGIN_INITIALIZE(EmulateInstructionMIPS);
+ LLDB_PLUGIN_INITIALIZE(EmulateInstructionMIPS64);
+ LLDB_PLUGIN_INITIALIZE(EmulateInstructionPPC64);
+
+ LLDB_PLUGIN_INITIALIZE(ItaniumABILanguageRuntime);
+ LLDB_PLUGIN_INITIALIZE(AppleObjCRuntime);
+ LLDB_PLUGIN_INITIALIZE(SystemRuntimeMacOSX);
+ LLDB_PLUGIN_INITIALIZE(RenderScriptRuntime);
+
+ LLDB_PLUGIN_INITIALIZE(CPlusPlusLanguage);
+ LLDB_PLUGIN_INITIALIZE(ObjCLanguage);
+ LLDB_PLUGIN_INITIALIZE(ObjCPlusPlusLanguage);
+
+#if defined(_WIN32)
+ LLDB_PLUGIN_INITIALIZE(ProcessWindows);
+#endif
+#if defined(__FreeBSD__)
+ LLDB_PLUGIN_INITIALIZE(ProcessFreeBSD);
+#endif
+#if defined(__APPLE__)
+ LLDB_PLUGIN_INITIALIZE(SymbolVendorMacOSX);
+ LLDB_PLUGIN_INITIALIZE(ProcessKDP);
+ LLDB_PLUGIN_INITIALIZE(DynamicLoaderDarwinKernel);
+#endif
+
+ // This plugin is valid on any host that talks to a Darwin remote. It
+ // shouldn't be limited to __APPLE__.
+ LLDB_PLUGIN_INITIALIZE(StructuredDataDarwinLog);
+
+ // Platform agnostic plugins
+ LLDB_PLUGIN_INITIALIZE(PlatformRemoteGDBServer);
+
+ LLDB_PLUGIN_INITIALIZE(ProcessGDBRemote);
+ LLDB_PLUGIN_INITIALIZE(DynamicLoaderMacOSXDYLD);
+ LLDB_PLUGIN_INITIALIZE(DynamicLoaderPOSIXDYLD);
+ LLDB_PLUGIN_INITIALIZE(DynamicLoaderWasmDYLD); // Before DynamicLoaderStatic.
+ LLDB_PLUGIN_INITIALIZE(DynamicLoaderStatic);
+ LLDB_PLUGIN_INITIALIZE(DynamicLoaderWindowsDYLD);
- // Scan for any system or user LLDB plug-ins.
+ // Scan for any system or user LLDB plug-ins
PluginManager::Initialize();
// The process settings need to know about installed plug-ins, so the
- // Settings must be initialized AFTER PluginManager::Initialize is called.
+ // Settings must be initialized
+ // AFTER PluginManager::Initialize is called.
+
Debugger::SettingsInitialize();
return llvm::Error::success();
@@ -62,16 +238,94 @@ void SystemInitializerTest::Terminate() {
Debugger::SettingsTerminate();
- // Terminate and unload and loaded system or user LLDB plug-ins.
+ // Terminate and unload and loaded system or user LLDB plug-ins
PluginManager::Terminate();
- // We ignored all the script interpreter earlier, so terminate
- // ScriptInterpreterNone explicitly.
- LLDB_PLUGIN_TERMINATE(ScriptInterpreterNone);
+ LLDB_PLUGIN_TERMINATE(TypeSystemClang);
+
+ LLDB_PLUGIN_TERMINATE(ArchitectureArm);
+ LLDB_PLUGIN_TERMINATE(ArchitectureMips);
+ LLDB_PLUGIN_TERMINATE(ArchitecturePPC64);
+
+#define LLVM_TARGET(t) LLDB_PROCESS_##t(LLDB_PLUGIN_TERMINATE)
+#include "llvm/Config/Targets.def"
+
+ LLDB_PLUGIN_TERMINATE(DisassemblerLLVMC);
+
+ LLDB_PLUGIN_TERMINATE(JITLoaderGDB);
+ LLDB_PLUGIN_TERMINATE(ProcessElfCore);
+ LLDB_PLUGIN_TERMINATE(ProcessMachCore);
+ LLDB_PLUGIN_TERMINATE(ProcessMinidump);
+ LLDB_PLUGIN_TERMINATE(MemoryHistoryASan);
+
+ LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeASan);
+ LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeTSan);
+ LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeUBSan);
+ LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeMainThreadChecker);
+
+ LLDB_PLUGIN_TERMINATE(SymbolVendorWasm);
+ LLDB_PLUGIN_TERMINATE(SymbolVendorELF);
+ LLDB_PLUGIN_TERMINATE(SymbolFileBreakpad);
+ LLDB_PLUGIN_TERMINATE(SymbolFileDWARF);
+ LLDB_PLUGIN_TERMINATE(SymbolFilePDB);
+ LLDB_PLUGIN_TERMINATE(SymbolFileSymtab);
+ LLDB_PLUGIN_TERMINATE(UnwindAssembly_x86);
+ LLDB_PLUGIN_TERMINATE(UnwindAssemblyInstEmulation);
+
+ LLDB_PLUGIN_TERMINATE(EmulateInstructionARM);
+ LLDB_PLUGIN_TERMINATE(EmulateInstructionARM64);
+ LLDB_PLUGIN_TERMINATE(EmulateInstructionMIPS);
+ LLDB_PLUGIN_TERMINATE(EmulateInstructionMIPS64);
+ LLDB_PLUGIN_TERMINATE(EmulateInstructionPPC64);
+
+ LLDB_PLUGIN_TERMINATE(ItaniumABILanguageRuntime);
+ LLDB_PLUGIN_TERMINATE(AppleObjCRuntime);
+ LLDB_PLUGIN_TERMINATE(SystemRuntimeMacOSX);
+ LLDB_PLUGIN_TERMINATE(RenderScriptRuntime);
-#define LLDB_SCRIPT_PLUGIN(p)
-#define LLDB_PLUGIN(p) LLDB_PLUGIN_TERMINATE(p);
-#include "Plugins/Plugins.def"
+ LLDB_PLUGIN_TERMINATE(CPlusPlusLanguage);
+ LLDB_PLUGIN_TERMINATE(ObjCLanguage);
+ LLDB_PLUGIN_TERMINATE(ObjCPlusPlusLanguage);
+
+#if defined(__APPLE__)
+ LLDB_PLUGIN_TERMINATE(DynamicLoaderDarwinKernel);
+ LLDB_PLUGIN_TERMINATE(ProcessKDP);
+ LLDB_PLUGIN_TERMINATE(SymbolVendorMacOSX);
+#endif
+
+#if defined(__FreeBSD__)
+ LLDB_PLUGIN_TERMINATE(ProcessFreeBSD);
+#endif
+ Debugger::SettingsTerminate();
+
+ LLDB_PLUGIN_TERMINATE(PlatformRemoteGDBServer);
+ LLDB_PLUGIN_TERMINATE(ProcessGDBRemote);
+ LLDB_PLUGIN_TERMINATE(StructuredDataDarwinLog);
+
+ LLDB_PLUGIN_TERMINATE(DynamicLoaderMacOSXDYLD);
+ LLDB_PLUGIN_TERMINATE(DynamicLoaderPOSIXDYLD);
+ LLDB_PLUGIN_TERMINATE(DynamicLoaderWasmDYLD);
+ LLDB_PLUGIN_TERMINATE(DynamicLoaderStatic);
+ LLDB_PLUGIN_TERMINATE(DynamicLoaderWindowsDYLD);
+
+ LLDB_PLUGIN_TERMINATE(PlatformFreeBSD);
+ LLDB_PLUGIN_TERMINATE(PlatformLinux);
+ LLDB_PLUGIN_TERMINATE(PlatformNetBSD);
+ LLDB_PLUGIN_TERMINATE(PlatformOpenBSD);
+ LLDB_PLUGIN_TERMINATE(PlatformWindows);
+ LLDB_PLUGIN_TERMINATE(PlatformAndroid);
+ LLDB_PLUGIN_TERMINATE(PlatformMacOSX);
+
+ LLDB_PLUGIN_TERMINATE(ObjectFileBreakpad);
+ LLDB_PLUGIN_TERMINATE(ObjectFileELF);
+ LLDB_PLUGIN_TERMINATE(ObjectFileMachO);
+ LLDB_PLUGIN_TERMINATE(ObjectFilePECOFF);
+ LLDB_PLUGIN_TERMINATE(ObjectFileWasm);
+
+ LLDB_PLUGIN_TERMINATE(ObjectContainerBSDArchive);
+ LLDB_PLUGIN_TERMINATE(ObjectContainerUniversalMachO);
+
+ LLDB_PLUGIN_TERMINATE(ScriptInterpreterNone);
// Now shutdown the common parts, in reverse order.
SystemInitializerCommon::Terminate();