Author: Jonas Devlieghere Date: 2020-02-17T19:04:50-08:00 New Revision: 50c9cd9526a7835ad5a702471a997c30d4fc6bcc
URL: https://github.com/llvm/llvm-project/commit/50c9cd9526a7835ad5a702471a997c30d4fc6bcc DIFF: https://github.com/llvm/llvm-project/commit/50c9cd9526a7835ad5a702471a997c30d4fc6bcc.diff LOG: Revert "[lldb/CMake] Auto-generate the Initialize and Terminate calls for plugin" This is still failing spectacularly on the Windows bot and I still have no clue what's going on. Added: Modified: lldb/include/lldb/Core/PluginManager.h lldb/source/API/SystemInitializerFull.cpp lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.cpp lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.cpp lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp lldb/source/Plugins/CMakeLists.txt lldb/source/Plugins/Disassembler/LLVMC/CMakeLists.txt lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp lldb/source/Plugins/ExpressionParser/Clang/CMakeLists.txt lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.cpp lldb/source/Plugins/Language/ClangCommon/CMakeLists.txt lldb/source/Plugins/LanguageRuntime/CPlusPlus/CMakeLists.txt lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp lldb/source/Plugins/LanguageRuntime/ObjC/CMakeLists.txt lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp lldb/source/Plugins/OperatingSystem/CMakeLists.txt lldb/source/Plugins/Platform/POSIX/CMakeLists.txt lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp lldb/source/Plugins/Process/Utility/CMakeLists.txt lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp lldb/tools/lldb-test/CMakeLists.txt lldb/tools/lldb-test/SystemInitializerTest.cpp lldb/unittests/Disassembler/CMakeLists.txt lldb/unittests/UnwindAssembly/ARM64/CMakeLists.txt lldb/unittests/UnwindAssembly/PPC64/CMakeLists.txt Removed: lldb/source/Plugins/Plugins.def.in ################################################################################ diff --git a/lldb/include/lldb/Core/PluginManager.h b/lldb/include/lldb/Core/PluginManager.h index d42e53ac6fe3..1544ecc386c7 100644 --- a/lldb/include/lldb/Core/PluginManager.h +++ b/lldb/include/lldb/Core/PluginManager.h @@ -22,15 +22,12 @@ #include <stddef.h> #include <stdint.h> -#define LLDB_PLUGIN_DEFINE_ADV(ClassName, PluginName) \ +#define LLDB_PLUGIN_DEFINE(PluginName) \ namespace lldb_private { \ - void lldb_initialize_##PluginName() { ClassName::Initialize(); } \ - void lldb_terminate_##PluginName() { ClassName::Terminate(); } \ + void lldb_initialize_##PluginName() { PluginName::Initialize(); } \ + void lldb_terminate_##PluginName() { PluginName::Terminate(); } \ } -#define LLDB_PLUGIN_DEFINE(PluginName) \ - LLDB_PLUGIN_DEFINE_ADV(PluginName, PluginName) - // FIXME: Generate me with CMake #define LLDB_PLUGIN_DECLARE(PluginName) \ namespace lldb_private { \ diff --git a/lldb/source/API/SystemInitializerFull.cpp b/lldb/source/API/SystemInitializerFull.cpp index f6b37c5bfebd..b629e53e9dfe 100644 --- a/lldb/source/API/SystemInitializerFull.cpp +++ b/lldb/source/API/SystemInitializerFull.cpp @@ -24,8 +24,89 @@ #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) +#if LLDB_ENABLE_PYTHON +LLDB_PLUGIN_DECLARE(OperatingSystemPython) +LLDB_PLUGIN_DECLARE(ScriptInterpreterPython) +#endif +#if LLDB_ENABLE_LUA +LLDB_PLUGIN_DECLARE(ScriptInterpreterLua) +#endif +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; @@ -33,24 +114,144 @@ SystemInitializerFull::SystemInitializerFull() {} SystemInitializerFull::~SystemInitializerFull() {} +#define LLDB_PROCESS_AArch64(op) op(ABIAArch64); +#define LLDB_PROCESS_ARM(op) op(ABIARM); +#define LLDB_PROCESS_ARC(op) op(ABISysV_arc); +#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_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 SystemInitializerFull::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); + +#if LLDB_ENABLE_PYTHON + LLDB_PLUGIN_INITIALIZE(OperatingSystemPython); +#endif + +#if LLDB_ENABLE_PYTHON + LLDB_PLUGIN_INITIALIZE(ScriptInterpreterPython); +#endif + +#if LLDB_ENABLE_LUA + LLDB_PLUGIN_INITIALIZE(ScriptInterpreterLua); +#endif + 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_PLUGIN(p) LLDB_PLUGIN_INITIALIZE(p); -#include "Plugins/Plugins.def" + LLDB_PLUGIN_INITIALIZE(TypeSystemClang); + +#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); - // Scan for any system or user LLDB plug-ins. + 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 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,11 +263,106 @@ void SystemInitializerFull::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(); -#define LLDB_PLUGIN(p) LLDB_PLUGIN_TERMINATE(p); -#include "Plugins/Plugins.def" + 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); + + 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); + +#if LLDB_ENABLE_PYTHON + LLDB_PLUGIN_TERMINATE(OperatingSystemPython); +#endif + +#if LLDB_ENABLE_PYTHON + LLDB_PLUGIN_TERMINATE(ScriptInterpreterPython); +#endif + +#if LLDB_ENABLE_LUA + LLDB_PLUGIN_TERMINATE(ScriptInterpreterLua); +#endif + + LLDB_PLUGIN_TERMINATE(ScriptInterpreterNone); // Now shutdown the common parts, in reverse order. SystemInitializerCommon::Terminate(); diff --git a/lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.cpp b/lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.cpp index 8ba63b9ba4a1..94f7c2aff641 100644 --- a/lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.cpp +++ b/lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.cpp @@ -1665,7 +1665,7 @@ ABIMacOSX_arm64::CreateInstance(ProcessSP process_sp, const ArchSpec &arch) { const llvm::Triple::VendorType vendor_type = arch.GetTriple().getVendor(); if (vendor_type == llvm::Triple::Apple) { - if (arch_type == llvm::Triple::aarch64 || + if (arch_type == llvm::Triple::aarch64 || arch_type == llvm::Triple::aarch64_32) { return ABISP( new ABIMacOSX_arm64(std::move(process_sp), MakeMCRegisterInfo(arch))); diff --git a/lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp b/lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp index 10e3b0ff2f7d..1690f1c511f2 100644 --- a/lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp +++ b/lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp @@ -55,7 +55,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN_DEFINE_ADV(ABISysV_arc, ABIARC) +LLDB_PLUGIN_DEFINE(ABISysV_arc) namespace { namespace dwarf { @@ -146,7 +146,7 @@ size_t ABISysV_arc::GetRedZoneSize() const { return 0; } bool ABISysV_arc::IsRegisterFileReduced(RegisterContext ®_ctx) const { if (!m_is_reg_file_reduced) { const auto *const rf_build_reg = reg_ctx.GetRegisterInfoByName("rf_build"); - + const auto reg_value = reg_ctx.ReadRegisterAsUnsigned(rf_build_reg, /*fail_value*/ 0); // RF_BUILD "Number of Entries" bit. @@ -241,7 +241,7 @@ bool ABISysV_arc::PrepareTrivialCall(Thread &thread, addr_t sp, addr_t pc, // Make sure number of parameters matches prototype. assert(!prototype.isFunctionVarArg()); assert(prototype.getFunctionNumParams() == args.size()); - + const size_t regs_for_args_count = IsRegisterFileReduced(*reg_ctx) ? 4U : 8U; // Number of arguments passed on stack. diff --git a/lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp b/lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp index ef500cb198a8..73d8308ae0dc 100644 --- a/lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp +++ b/lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp @@ -34,6 +34,8 @@ using namespace lldb; using namespace lldb_private; +LLDB_PLUGIN_DEFINE(ABIMacOSX_arm) + static RegisterInfo g_register_infos[] = { // NAME ALT SZ OFF ENCODING FORMAT EH_FRAME // DWARF GENERIC PROCESS PLUGIN diff --git a/lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.cpp b/lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.cpp index 32313d4cd815..601d9c2f0f05 100644 --- a/lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.cpp +++ b/lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.cpp @@ -32,7 +32,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN_DEFINE_ADV(ABISysV_hexagon, ABIHexagon) +LLDB_PLUGIN_DEFINE(ABISysV_hexagon) static RegisterInfo g_register_infos[] = { // hexagon-core.xml diff --git a/lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp b/lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp index eced2adc7591..bfeaa1226df2 100644 --- a/lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp +++ b/lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp @@ -32,7 +32,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN_DEFINE_ADV(ABISysV_s390x, ABISystemZ) +LLDB_PLUGIN_DEFINE(ABISysV_s390x) enum dwarf_regnums { // General Purpose Registers diff --git a/lldb/source/Plugins/CMakeLists.txt b/lldb/source/Plugins/CMakeLists.txt index 7e6276ea1d87..08817baec14c 100644 --- a/lldb/source/Plugins/CMakeLists.txt +++ b/lldb/source/Plugins/CMakeLists.txt @@ -21,34 +21,3 @@ add_subdirectory(SystemRuntime) add_subdirectory(SymbolVendor) add_subdirectory(TypeSystem) add_subdirectory(UnwindAssembly) - -set(LLDB_STRIPPED_PLUGINS) -get_property(LLDB_ALL_PLUGINS GLOBAL PROPERTY LLDB_PLUGINS) - -set(LLDB_ENUM_PLUGINS "") - -# Some plugins depend on other plugins being loaded before. This hacks around -# that issue by loading them last. Note that there's no order guarantee within -# this category. -set(LLDB_ENUM_PLUGINS_LOADED_LAST "") - -foreach(p ${LLDB_ALL_PLUGINS}) - # Strip lldbPlugin form the plugin name. - string(SUBSTRING ${p} 10 -1 pStripped) - if(${pStripped} MATCHES "^ScriptInterpreter*") - set(LLDB_ENUM_PLUGINS "${LLDB_ENUM_PLUGINS}LLDB_SCRIPT_PLUGIN(${pStripped})\n") - elseif(${pStripped} MATCHES "^ProcessWindows*") - set(LLDB_ENUM_PLUGINS_LOADED_LAST "${LLDB_ENUM_PLUGINS_LOADED_LAST}LLDB_PLUGIN(${pStripped})\n") - elseif(${pStripped} STREQUAL "DynamicLoaderStatic") - set(LLDB_ENUM_PLUGINS_LOADED_LAST "${LLDB_ENUM_PLUGINS_LOADED_LAST}LLDB_PLUGIN(${pStripped})\n") - else() - set(LLDB_ENUM_PLUGINS "${LLDB_ENUM_PLUGINS}LLDB_PLUGIN(${pStripped})\n") - endif() -endforeach(p) - -configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/Plugins.def.in - ${CMAKE_CURRENT_BINARY_DIR}/Plugins.def - ) - -set_property(GLOBAL PROPERTY LLDB_PLUGINS_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/lldb/source/Plugins/Disassembler/LLVMC/CMakeLists.txt b/lldb/source/Plugins/Disassembler/LLVMC/CMakeLists.txt index 51959cbbc993..a25a436d498e 100644 --- a/lldb/source/Plugins/Disassembler/LLVMC/CMakeLists.txt +++ b/lldb/source/Plugins/Disassembler/LLVMC/CMakeLists.txt @@ -1,4 +1,4 @@ -add_lldb_library(lldbPluginDisassemblerLLVMC PLUGIN +add_lldb_library(lldbPluginDisassemblerLLVM PLUGIN DisassemblerLLVMC.cpp LINK_LIBS diff --git a/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp b/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp index fe86b2929073..4e227abbafc2 100644 --- a/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp +++ b/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp @@ -25,8 +25,6 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN_DEFINE(DynamicLoaderHexagonDYLD) - // Aidan 21/05/2014 // // Notes about hexagon dynamic loading: diff --git a/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp b/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp index ac60af5336ed..c572c3024f9c 100644 --- a/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp +++ b/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp @@ -29,7 +29,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN_DEFINE_ADV(DynamicLoaderPOSIXDYLD, DynamicLoaderPosixDYLD) +LLDB_PLUGIN_DEFINE(DynamicLoaderPOSIXDYLD) void DynamicLoaderPOSIXDYLD::Initialize() { PluginManager::RegisterPlugin(GetPluginNameStatic(), diff --git a/lldb/source/Plugins/ExpressionParser/Clang/CMakeLists.txt b/lldb/source/Plugins/ExpressionParser/Clang/CMakeLists.txt index 0506bb6227ca..909e92ace8d4 100644 --- a/lldb/source/Plugins/ExpressionParser/Clang/CMakeLists.txt +++ b/lldb/source/Plugins/ExpressionParser/Clang/CMakeLists.txt @@ -2,7 +2,7 @@ if(NOT LLDB_BUILT_STANDALONE) set(tablegen_deps intrinsics_gen) endif() -add_lldb_library(lldbPluginExpressionParserClang +add_lldb_library(lldbPluginExpressionParserClang PLUGIN ASTResultSynthesizer.cpp ASTStructExtractor.cpp ASTUtils.cpp diff --git a/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp b/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp index aa99db418283..e87bc1f75f5c 100644 --- a/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp +++ b/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp @@ -30,7 +30,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN_DEFINE_ADV(EmulateInstructionARM, InstructionARM) +LLDB_PLUGIN_DEFINE(EmulateInstructionARM) // Convenient macro definitions. #define APSR_C Bit32(m_opcode_cpsr, CPSR_C_POS) diff --git a/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp b/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp index f58453909426..144d38373247 100644 --- a/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp +++ b/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp @@ -47,7 +47,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN_DEFINE_ADV(EmulateInstructionARM64, InstructionARM64) +LLDB_PLUGIN_DEFINE(EmulateInstructionARM64) static bool LLDBTableGetRegisterInfo(uint32_t reg_num, RegisterInfo ®_info) { if (reg_num >= llvm::array_lengthof(g_register_infos_arm64_le)) diff --git a/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp b/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp index 61eb8912295f..ae74c89c4f2e 100644 --- a/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp +++ b/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp @@ -40,7 +40,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN_DEFINE_ADV(EmulateInstructionMIPS, InstructionMIPS) +LLDB_PLUGIN_DEFINE(EmulateInstructionMIPS) #define UInt(x) ((uint64_t)x) #define integer int64_t diff --git a/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp b/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp index b8305591749b..9a578ab408f7 100644 --- a/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp +++ b/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp @@ -40,7 +40,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN_DEFINE_ADV(EmulateInstructionMIPS64, InstructionMIPS64) +LLDB_PLUGIN_DEFINE(EmulateInstructionMIPS64) #define UInt(x) ((uint64_t)x) #define integer int64_t diff --git a/lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.cpp b/lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.cpp index 1cab8fdd6e2a..2588c935dd6b 100644 --- a/lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.cpp +++ b/lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.cpp @@ -25,7 +25,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN_DEFINE_ADV(EmulateInstructionPPC64, InstructionPPC64) +LLDB_PLUGIN_DEFINE(EmulateInstructionPPC64) EmulateInstructionPPC64::EmulateInstructionPPC64(const ArchSpec &arch) : EmulateInstruction(arch) {} diff --git a/lldb/source/Plugins/Language/ClangCommon/CMakeLists.txt b/lldb/source/Plugins/Language/ClangCommon/CMakeLists.txt index 980d788afc72..854320dd312e 100644 --- a/lldb/source/Plugins/Language/ClangCommon/CMakeLists.txt +++ b/lldb/source/Plugins/Language/ClangCommon/CMakeLists.txt @@ -1,4 +1,4 @@ -add_lldb_library(lldbPluginClangCommon +add_lldb_library(lldbPluginClangCommon PLUGIN ClangHighlighter.cpp LINK_LIBS diff --git a/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CMakeLists.txt b/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CMakeLists.txt index ebfa7c8c005c..508a361aa6dd 100644 --- a/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CMakeLists.txt +++ b/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CMakeLists.txt @@ -1,4 +1,4 @@ -add_lldb_library(lldbPluginCPPRuntime +add_lldb_library(lldbPluginCPPRuntime PLUGIN CPPLanguageRuntime.cpp LINK_LIBS diff --git a/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp b/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp index df2aaca8a943..e08f0f070f6c 100644 --- a/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp +++ b/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp @@ -40,7 +40,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN_DEFINE_ADV(ItaniumABILanguageRuntime, CXXItaniumABI) +LLDB_PLUGIN_DEFINE(ItaniumABILanguageRuntime) static const char *vtable_demangled_prefix = "vtable for "; diff --git a/lldb/source/Plugins/LanguageRuntime/ObjC/CMakeLists.txt b/lldb/source/Plugins/LanguageRuntime/ObjC/CMakeLists.txt index d6de9dcc31bc..5b3ea2ff27fa 100644 --- a/lldb/source/Plugins/LanguageRuntime/ObjC/CMakeLists.txt +++ b/lldb/source/Plugins/LanguageRuntime/ObjC/CMakeLists.txt @@ -1,4 +1,4 @@ -add_lldb_library(lldbPluginObjCRuntime +add_lldb_library(lldbPluginObjCRuntime PLUGIN ObjCLanguageRuntime.cpp LINK_LIBS diff --git a/lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp b/lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp index bb56379ed1e4..bc30e57d1d0c 100644 --- a/lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp +++ b/lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp @@ -20,8 +20,7 @@ using namespace lldb; using namespace lldb_private; using namespace llvm::MachO; -LLDB_PLUGIN_DEFINE_ADV(ObjectContainerUniversalMachO, - ObjectContainerMachOArchive) +LLDB_PLUGIN_DEFINE(ObjectContainerUniversalMachO) void ObjectContainerUniversalMachO::Initialize() { PluginManager::RegisterPlugin(GetPluginNameStatic(), diff --git a/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp b/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp index 371bbb5ff84d..2d505bcd409b 100644 --- a/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp +++ b/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp @@ -39,8 +39,6 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN_DEFINE(ObjectFileJIT) - char ObjectFileJIT::ID; void ObjectFileJIT::Initialize() { diff --git a/lldb/source/Plugins/OperatingSystem/CMakeLists.txt b/lldb/source/Plugins/OperatingSystem/CMakeLists.txt index 06d909b862a0..655007a0aab9 100644 --- a/lldb/source/Plugins/OperatingSystem/CMakeLists.txt +++ b/lldb/source/Plugins/OperatingSystem/CMakeLists.txt @@ -1,3 +1 @@ -if (LLDB_ENABLE_PYTHON) - add_subdirectory(Python) -endif() +add_subdirectory(Python) diff --git a/lldb/source/Plugins/Platform/POSIX/CMakeLists.txt b/lldb/source/Plugins/Platform/POSIX/CMakeLists.txt index 106fe964ddb7..c4c62e46add3 100644 --- a/lldb/source/Plugins/Platform/POSIX/CMakeLists.txt +++ b/lldb/source/Plugins/Platform/POSIX/CMakeLists.txt @@ -1,4 +1,4 @@ -add_lldb_library(lldbPluginPlatformPOSIX +add_lldb_library(lldbPluginPlatformPOSIX PLUGIN PlatformPOSIX.cpp LINK_LIBS diff --git a/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp b/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp index b0467555665c..550b68090e7a 100644 --- a/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp +++ b/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp @@ -35,7 +35,7 @@ using namespace lldb; using namespace lldb_private; using namespace lldb_private::platform_gdb_server; -LLDB_PLUGIN_DEFINE_ADV(PlatformRemoteGDBServer, PlatformGDB) +LLDB_PLUGIN_DEFINE(PlatformRemoteGDBServer) static bool g_initialized = false; diff --git a/lldb/source/Plugins/Plugins.def.in b/lldb/source/Plugins/Plugins.def.in deleted file mode 100644 index 63a68a17e6ec..000000000000 --- a/lldb/source/Plugins/Plugins.def.in +++ /dev/null @@ -1,36 +0,0 @@ -/*===- lldb/source/Plugin/Plugins.def ---------------------------*- C++ -*-===*\ -|* *| -|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| -|* Exceptions. *| -|* See https://llvm.org/LICENSE.txt for license information. *| -|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| -|* *| -|*===----------------------------------------------------------------------===*| -|* *| -|* This file enumerates all of the plugins supported by this build of LLDB. *| -|* Clients of this file should define the LLDB_PLUGIN macro to be a *| -|* function-like macro with a single parameter (the name of the plugin) *| -|* including this file will then enumerate all of the plugins. Script *| -|* interpreter plugins can be enumerated separately by defining *| -|* LLDB_SCRIPT_PLUGIN in which case they are not part of LLDB_PLUGIN. *| -|* *| -|* *| -|* The set of plugins supported by LLDB is generated at configuration *| -|* time, at which point this header is generated. Do not modify this *| -|* header directly. *| -|* *| -\*===----------------------------------------------------------------------===*/ - -#ifndef LLDB_PLUGIN -# error Please define the macro LLDB_PLUGIN(PluginName) -#endif - -#ifndef LLDB_SCRIPT_PLUGIN -#define LLDB_SCRIPT_PLUGIN(p) LLDB_PLUGIN(p) -#endif - -@LLDB_ENUM_PLUGINS@ -@LLDB_ENUM_PLUGINS_LOADED_LAST@ - -#undef LLDB_PLUGIN -#undef LLDB_SCRIPT_PLUGIN diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp b/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp index 09d1965f25ed..e78912e3cd30 100644 --- a/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp +++ b/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp @@ -50,7 +50,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN_DEFINE_ADV(ProcessKDP, ProcessMacOSXKernel) +LLDB_PLUGIN_DEFINE(ProcessKDP) namespace { diff --git a/lldb/source/Plugins/Process/Utility/CMakeLists.txt b/lldb/source/Plugins/Process/Utility/CMakeLists.txt index dfc8c11f3869..55746b04c39f 100644 --- a/lldb/source/Plugins/Process/Utility/CMakeLists.txt +++ b/lldb/source/Plugins/Process/Utility/CMakeLists.txt @@ -1,4 +1,4 @@ -add_lldb_library(lldbPluginProcessUtility +add_lldb_library(lldbPluginProcessUtility PLUGIN AuxVector.cpp DynamicRegisterInfo.cpp FreeBSDSignals.cpp diff --git a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp index 7b020f55e993..286a95fa5894 100644 --- a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp +++ b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp @@ -44,7 +44,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN_DEFINE_ADV(ProcessWindows, ProcessWindowsCommon) +LLDB_PLUGIN_DEFINE(ProcessWindows) namespace { std::string GetProcessExecutableName(HANDLE process_handle) { diff --git a/lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt b/lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt index 7dab9370e512..4f19231c346c 100644 --- a/lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt +++ b/lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt @@ -1,4 +1,4 @@ -add_lldb_library(lldbPluginSymbolFileNativePDB +add_lldb_library(lldbPluginSymbolFileNativePDB PLUGIN CodeViewRegisterMapping.cpp CompileUnitIndex.cpp DWARFLocationExpression.cpp diff --git a/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp b/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp index dc62e957c1a1..430ba09b811c 100644 --- a/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp +++ b/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp @@ -30,7 +30,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN_DEFINE_ADV(UnwindAssembly_x86, UnwindAssemblyX86) +LLDB_PLUGIN_DEFINE(UnwindAssembly_x86) // UnwindAssemblyParser_x86 method definitions diff --git a/lldb/tools/lldb-test/CMakeLists.txt b/lldb/tools/lldb-test/CMakeLists.txt index f3530fd7b859..2ab1ceacdcd1 100644 --- a/lldb/tools/lldb-test/CMakeLists.txt +++ b/lldb/tools/lldb-test/CMakeLists.txt @@ -23,6 +23,5 @@ add_lldb_tool(lldb-test LINK_COMPONENTS Support ) - -target_include_directories(lldb-test PRIVATE ${LLDB_SOURCE_DIR}/source) -target_include_directories(lldb-test PRIVATE ${LLDB_BINARY_DIR}/source) + +include_directories(${LLDB_SOURCE_DIR}/source) diff --git a/lldb/tools/lldb-test/SystemInitializerTest.cpp b/lldb/tools/lldb-test/SystemInitializerTest.cpp index cd180b5f2387..b33b08640471 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(); diff --git a/lldb/unittests/Disassembler/CMakeLists.txt b/lldb/unittests/Disassembler/CMakeLists.txt index a0a3c264f16c..de78d12fa2fa 100644 --- a/lldb/unittests/Disassembler/CMakeLists.txt +++ b/lldb/unittests/Disassembler/CMakeLists.txt @@ -6,7 +6,7 @@ if("ARM" IN_LIST LLVM_TARGETS_TO_BUILD) lldbCore lldbSymbol lldbTarget - lldbPluginDisassemblerLLVMC + lldbPluginDisassemblerLLVM lldbPluginProcessUtility LINK_COMPONENTS Support diff --git a/lldb/unittests/UnwindAssembly/ARM64/CMakeLists.txt b/lldb/unittests/UnwindAssembly/ARM64/CMakeLists.txt index f3bbd71df32d..77924792fe5c 100644 --- a/lldb/unittests/UnwindAssembly/ARM64/CMakeLists.txt +++ b/lldb/unittests/UnwindAssembly/ARM64/CMakeLists.txt @@ -5,7 +5,7 @@ add_lldb_unittest(Arm64InstEmulationTests lldbSymbol lldbTarget lldbPluginUnwindAssemblyInstEmulation - lldbPluginDisassemblerLLVMC + lldbPluginDisassemblerLLVM lldbPluginInstructionARM64 lldbPluginProcessUtility LINK_COMPONENTS diff --git a/lldb/unittests/UnwindAssembly/PPC64/CMakeLists.txt b/lldb/unittests/UnwindAssembly/PPC64/CMakeLists.txt index 679f7664cb87..d803f4593636 100644 --- a/lldb/unittests/UnwindAssembly/PPC64/CMakeLists.txt +++ b/lldb/unittests/UnwindAssembly/PPC64/CMakeLists.txt @@ -5,7 +5,7 @@ add_lldb_unittest(PPC64InstEmulationTests lldbSymbol lldbTarget lldbPluginUnwindAssemblyInstEmulation - lldbPluginDisassemblerLLVMC + lldbPluginDisassemblerLLVM lldbPluginInstructionPPC64 lldbPluginProcessUtility LINK_COMPONENTS _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits