summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins')
-rw-r--r--lldb/source/Plugins/DynamicLoader/Darwin-Kernel/CMakeLists.txt12
-rw-r--r--lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp16
-rw-r--r--lldb/source/Plugins/DynamicLoader/Darwin-Kernel/Properties.td13
-rw-r--r--lldb/source/Plugins/JITLoader/GDB/CMakeLists.txt11
-rw-r--r--lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp14
-rw-r--r--lldb/source/Plugins/JITLoader/GDB/Properties.td9
-rw-r--r--lldb/source/Plugins/Platform/MacOSX/CMakeLists.txt14
-rw-r--r--lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp16
-rw-r--r--lldb/source/Plugins/Platform/MacOSX/Properties.td11
-rw-r--r--lldb/source/Plugins/Process/MacOSX-Kernel/CMakeLists.txt12
-rw-r--r--lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp12
-rw-r--r--lldb/source/Plugins/Process/MacOSX-Kernel/Properties.td8
-rw-r--r--lldb/source/Plugins/Process/gdb-remote/CMakeLists.txt12
-rw-r--r--lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp38
-rw-r--r--lldb/source/Plugins/Process/gdb-remote/Properties.td16
-rw-r--r--lldb/source/Plugins/StructuredData/DarwinLog/CMakeLists.txt12
-rw-r--r--lldb/source/Plugins/StructuredData/DarwinLog/Properties.td12
-rw-r--r--lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp31
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/CMakeLists.txt12
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/Properties.td12
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp14
21 files changed, 216 insertions, 91 deletions
diff --git a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/CMakeLists.txt b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/CMakeLists.txt
index ffc797b7475..b4ba84a7fde 100644
--- a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/CMakeLists.txt
+++ b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/CMakeLists.txt
@@ -1,3 +1,11 @@
+lldb_tablegen(Properties.inc -gen-lldb-property-defs
+ SOURCE Properties.td
+ TARGET LLDBPluginDynamicLoaderDarwinKernelPropertiesGen)
+
+lldb_tablegen(PropertiesEnum.inc -gen-lldb-property-enum-defs
+ SOURCE Properties.td
+ TARGET LLDBPluginDynamicLoaderDarwinKernelPropertiesEnumGen)
+
add_lldb_library(lldbPluginDynamicLoaderDarwinKernel PLUGIN
DynamicLoaderDarwinKernel.cpp
@@ -11,3 +19,7 @@ add_lldb_library(lldbPluginDynamicLoaderDarwinKernel PLUGIN
lldbUtility
lldbPluginPlatformMacOSX
)
+
+add_dependencies(lldbPluginDynamicLoaderDarwinKernel
+ LLDBPluginDynamicLoaderDarwinKernelPropertiesGen
+ LLDBPluginDynamicLoaderDarwinKernelPropertiesEnumGen)
diff --git a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
index 7ff783da346..0d55e341dae 100644
--- a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
+++ b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
@@ -73,14 +73,14 @@ static constexpr OptionEnumValueElement g_kaslr_kernel_scan_enum_values[] = {
"on 32-bit targets)."}};
static constexpr PropertyDefinition g_properties[] = {
- {"load-kexts", OptionValue::eTypeBoolean, true, true, nullptr, {},
- "Automatically loads kext images when attaching to a kernel."},
- {"scan-type", OptionValue::eTypeEnum, true, eKASLRScanNearPC, nullptr,
- OptionEnumValues(g_kaslr_kernel_scan_enum_values),
- "Control how many reads lldb will make while searching for a Darwin "
- "kernel on attach."}};
-
-enum { ePropertyLoadKexts, ePropertyScanType };
+#define LLDB_PROPERTIES_dynamicloaderdarwinkernel
+#include "Properties.inc"
+};
+
+enum {
+#define LLDB_PROPERTIES_dynamicloaderdarwinkernel
+#include "PropertiesEnum.inc"
+};
class DynamicLoaderDarwinKernelProperties : public Properties {
public:
diff --git a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/Properties.td b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/Properties.td
new file mode 100644
index 00000000000..6c662d737fa
--- /dev/null
+++ b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/Properties.td
@@ -0,0 +1,13 @@
+include "../../../../include/lldb/Core/PropertiesBase.td"
+
+let Definition = "dynamicloaderdarwinkernel" in {
+ def LoadKexts: Property<"load-kexts", "Boolean">,
+ Global,
+ DefaultTrue,
+ Desc<"Automatically loads kext images when attaching to a kernel.">;
+ def ScanType: Property<"scan-type", "Enum">,
+ Global,
+ DefaultEnumValue<"eKASLRScanNearPC">,
+ EnumValues<"OptionEnumValues(g_kaslr_kernel_scan_enum_values)">,
+ Desc<"Control how many reads lldb will make while searching for a Darwin kernel on attach.">;
+}
diff --git a/lldb/source/Plugins/JITLoader/GDB/CMakeLists.txt b/lldb/source/Plugins/JITLoader/GDB/CMakeLists.txt
index 190599cbd58..88e8fce4a6d 100644
--- a/lldb/source/Plugins/JITLoader/GDB/CMakeLists.txt
+++ b/lldb/source/Plugins/JITLoader/GDB/CMakeLists.txt
@@ -1,3 +1,11 @@
+lldb_tablegen(Properties.inc -gen-lldb-property-defs
+ SOURCE Properties.td
+ TARGET LLDBPluginJITLoaderGDBPropertiesGen)
+
+lldb_tablegen(PropertiesEnum.inc -gen-lldb-property-enum-defs
+ SOURCE Properties.td
+ TARGET LLDBPluginJITLoaderGDBPropertiesEnumGen)
+
add_lldb_library(lldbPluginJITLoaderGDB PLUGIN
JITLoaderGDB.cpp
@@ -12,3 +20,6 @@ add_lldb_library(lldbPluginJITLoaderGDB PLUGIN
Support
)
+add_dependencies(lldbPluginJITLoaderGDB
+ LLDBPluginJITLoaderGDBPropertiesGen
+ LLDBPluginJITLoaderGDBPropertiesEnumGen)
diff --git a/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp b/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp
index bc429d747cf..a6db810ac77 100644
--- a/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp
+++ b/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp
@@ -67,13 +67,15 @@ static constexpr OptionEnumValueElement g_enable_jit_loader_gdb_enumerators[] =
};
static constexpr PropertyDefinition g_properties[] = {
- {"enable", OptionValue::eTypeEnum, true,
- eEnableJITLoaderGDBDefault, nullptr,
- OptionEnumValues(g_enable_jit_loader_gdb_enumerators),
- "Enable GDB's JIT compilation interface (default: enabled on "
- "all platforms except macOS)"}};
+#define LLDB_PROPERTIES_jitloadergdb
+#include "Properties.inc"
+};
-enum { ePropertyEnable, ePropertyEnableJITBreakpoint };
+enum {
+#define LLDB_PROPERTIES_jitloadergdb
+#include "PropertiesEnum.inc"
+ ePropertyEnableJITBreakpoint
+};
class PluginProperties : public Properties {
public:
diff --git a/lldb/source/Plugins/JITLoader/GDB/Properties.td b/lldb/source/Plugins/JITLoader/GDB/Properties.td
new file mode 100644
index 00000000000..0493838bc85
--- /dev/null
+++ b/lldb/source/Plugins/JITLoader/GDB/Properties.td
@@ -0,0 +1,9 @@
+include "../../../../include/lldb/Core/PropertiesBase.td"
+
+let Definition = "jitloadergdb" in {
+ def Enable: Property<"enable", "Enum">,
+ Global,
+ DefaultEnumValue<"eEnableJITLoaderGDBDefault">,
+ EnumValues<"OptionEnumValues(g_enable_jit_loader_gdb_enumerators)">,
+ Desc<"Enable GDB's JIT compilation interface (default: enabled on all platforms except macOS)">;
+}
diff --git a/lldb/source/Plugins/Platform/MacOSX/CMakeLists.txt b/lldb/source/Plugins/Platform/MacOSX/CMakeLists.txt
index 6f0d952c35f..d8fd2aafe71 100644
--- a/lldb/source/Plugins/Platform/MacOSX/CMakeLists.txt
+++ b/lldb/source/Plugins/Platform/MacOSX/CMakeLists.txt
@@ -1,3 +1,11 @@
+lldb_tablegen(Properties.inc -gen-lldb-property-defs
+ SOURCE Properties.td
+ TARGET LLDBPluginPlatformMacOSXPropertiesGen)
+
+lldb_tablegen(PropertiesEnum.inc -gen-lldb-property-enum-defs
+ SOURCE Properties.td
+ TARGET LLDBPluginPlatformMacOSXPropertiesEnumGen)
+
list(APPEND PLUGIN_PLATFORM_MACOSX_SOURCES
PlatformDarwin.cpp
PlatformDarwinKernel.cpp
@@ -29,7 +37,7 @@ endif()
add_lldb_library(lldbPluginPlatformMacOSX PLUGIN
${PLUGIN_PLATFORM_MACOSX_SOURCES}
-
+
LINK_LIBS
clangBasic
lldbBreakpoint
@@ -44,3 +52,7 @@ add_lldb_library(lldbPluginPlatformMacOSX PLUGIN
LINK_COMPONENTS
Support
)
+
+add_dependencies(lldbPluginPlatformMacOSX
+ LLDBPluginPlatformMacOSXPropertiesGen
+ LLDBPluginPlatformMacOSXPropertiesEnumGen)
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
index ee0d19253bf..b1e0f87cbb2 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
@@ -178,14 +178,14 @@ const char *PlatformDarwinKernel::GetDescriptionStatic() {
/// Code to handle the PlatformDarwinKernel settings
static constexpr PropertyDefinition g_properties[] = {
- {"search-locally-for-kexts", OptionValue::eTypeBoolean, true, true, NULL,
- {}, "Automatically search for kexts on the local system when doing "
- "kernel debugging."},
- {"kext-directories", OptionValue::eTypeFileSpecList, false, 0, NULL, {},
- "Directories/KDKs to search for kexts in when starting a kernel debug "
- "session."}};
-
-enum { ePropertySearchForKexts = 0, ePropertyKextDirectories };
+#define LLDB_PROPERTIES_platformdarwinkernel
+#include "Properties.inc"
+};
+
+enum {
+#define LLDB_PROPERTIES_platformdarwinkernel
+#include "PropertiesEnum.inc"
+};
class PlatformDarwinKernelProperties : public Properties {
public:
diff --git a/lldb/source/Plugins/Platform/MacOSX/Properties.td b/lldb/source/Plugins/Platform/MacOSX/Properties.td
new file mode 100644
index 00000000000..07e4e3e81d8
--- /dev/null
+++ b/lldb/source/Plugins/Platform/MacOSX/Properties.td
@@ -0,0 +1,11 @@
+include "../../../../include/lldb/Core/PropertiesBase.td"
+
+let Definition = "platformdarwinkernel" in {
+ def SearchForKexts: Property<"search-locally-for-kexts", "Boolean">,
+ Global,
+ DefaultTrue,
+ Desc<"Automatically search for kexts on the local system when doing kernel debugging.">;
+ def KextDirectories: Property<"kext-directories", "FileSpecList">,
+ DefaultStringValue<"">,
+ Desc<"Directories/KDKs to search for kexts in when starting a kernel debug session.">;
+}
diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/CMakeLists.txt b/lldb/source/Plugins/Process/MacOSX-Kernel/CMakeLists.txt
index bed0e3b7ab3..56720083631 100644
--- a/lldb/source/Plugins/Process/MacOSX-Kernel/CMakeLists.txt
+++ b/lldb/source/Plugins/Process/MacOSX-Kernel/CMakeLists.txt
@@ -1,3 +1,11 @@
+lldb_tablegen(Properties.inc -gen-lldb-property-defs
+ SOURCE Properties.td
+ TARGET LLDBPluginProcessMacOSXKernelPropertiesGen)
+
+lldb_tablegen(PropertiesEnum.inc -gen-lldb-property-enum-defs
+ SOURCE Properties.td
+ TARGET LLDBPluginProcessMacOSXKernelPropertiesEnumGen)
+
add_lldb_library(lldbPluginProcessMacOSXKernel PLUGIN
CommunicationKDP.cpp
ProcessKDP.cpp
@@ -20,3 +28,7 @@ add_lldb_library(lldbPluginProcessMacOSXKernel PLUGIN
lldbPluginDynamicLoaderStatic
lldbPluginProcessUtility
)
+
+add_dependencies(lldbPluginProcessMacOSXKernel
+ LLDBPluginProcessMacOSXKernelPropertiesGen
+ LLDBPluginProcessMacOSXKernelPropertiesEnumGen)
diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp b/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
index 52c494db6be..5542018a4f9 100644
--- a/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
+++ b/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
@@ -53,10 +53,14 @@ using namespace lldb_private;
namespace {
static constexpr PropertyDefinition g_properties[] = {
- {"packet-timeout", OptionValue::eTypeUInt64, true, 5, NULL, {},
- "Specify the default packet timeout in seconds."}};
+#define LLDB_PROPERTIES_processkdp
+#include "Properties.inc"
+};
-enum { ePropertyPacketTimeout };
+enum {
+#define LLDB_PROPERTIES_processkdp
+#include "PropertiesEnum.inc"
+};
class PluginProperties : public Properties {
public:
@@ -72,7 +76,7 @@ public:
virtual ~PluginProperties() {}
uint64_t GetPacketTimeout() {
- const uint32_t idx = ePropertyPacketTimeout;
+ const uint32_t idx = ePropertyKDPPacketTimeout;
return m_collection_sp->GetPropertyAtIndexAsUInt64(
NULL, idx, g_properties[idx].default_uint_value);
}
diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/Properties.td b/lldb/source/Plugins/Process/MacOSX-Kernel/Properties.td
new file mode 100644
index 00000000000..0063bdbec00
--- /dev/null
+++ b/lldb/source/Plugins/Process/MacOSX-Kernel/Properties.td
@@ -0,0 +1,8 @@
+include "../../../../include/lldb/Core/PropertiesBase.td"
+
+let Definition = "processkdp" in {
+ def KDPPacketTimeout: Property<"packet-timeout", "UInt64">,
+ Global,
+ DefaultUnsignedValue<5>,
+ Desc<"Specify the default packet timeout in seconds.">;
+}
diff --git a/lldb/source/Plugins/Process/gdb-remote/CMakeLists.txt b/lldb/source/Plugins/Process/gdb-remote/CMakeLists.txt
index 4eb5291d54d..2e0b4a8041c 100644
--- a/lldb/source/Plugins/Process/gdb-remote/CMakeLists.txt
+++ b/lldb/source/Plugins/Process/gdb-remote/CMakeLists.txt
@@ -1,3 +1,11 @@
+lldb_tablegen(Properties.inc -gen-lldb-property-defs
+ SOURCE Properties.td
+ TARGET LLDBPluginProcessGDBRemotePropertiesGen)
+
+lldb_tablegen(PropertiesEnum.inc -gen-lldb-property-enum-defs
+ SOURCE Properties.td
+ TARGET LLDBPluginProcessGDBRemotePropertiesEnumGen)
+
if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
include_directories(${LIBXML2_INCLUDE_DIR})
endif()
@@ -40,3 +48,7 @@ add_lldb_library(lldbPluginProcessGDBRemote PLUGIN
LINK_COMPONENTS
Support
)
+
+add_dependencies(lldbPluginProcessGDBRemote
+ LLDBPluginProcessGDBRemotePropertiesGen
+ LLDBPluginProcessGDBRemotePropertiesEnumGen)
diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
index 5cb5f147367..ade1d84b16b 100644
--- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
@@ -111,39 +111,13 @@ void DumpProcessGDBRemotePacketHistory(void *p, const char *path) {
namespace {
static constexpr PropertyDefinition g_properties[] = {
- {"packet-timeout",
- OptionValue::eTypeUInt64,
- true,
- 5
-#if defined(__has_feature)
-#if __has_feature(address_sanitizer)
- * 2
-#endif
-#endif
- ,
- nullptr,
- {},
- "Specify the default packet timeout in seconds."},
- {"target-definition-file",
- OptionValue::eTypeFileSpec,
- true,
- 0,
- nullptr,
- {},
- "The file that provides the description for remote target registers."},
- {"use-libraries-svr4",
- OptionValue::eTypeBoolean,
- true,
- false,
- nullptr,
- {},
- "If true, the libraries-svr4 feature will be used to get a hold of the "
- "process's loaded modules."}};
+#define LLDB_PROPERTIES_processgdbremote
+#include "Properties.inc"
+};
enum {
- ePropertyPacketTimeout,
- ePropertyTargetDefinitionFile,
- ePropertyUseSVR4
+#define LLDB_PROPERTIES_processgdbremote
+#include "PropertiesEnum.inc"
};
class PluginProperties : public Properties {
@@ -2469,7 +2443,7 @@ void ProcessGDBRemote::RefreshStateAfterStop() {
// Clear the thread stop stack
m_stop_packet_stack.clear();
}
-
+
// If we have queried for a default thread id
if (m_initial_tid != LLDB_INVALID_THREAD_ID) {
m_thread_list.SetSelectedThreadByID(m_initial_tid);
diff --git a/lldb/source/Plugins/Process/gdb-remote/Properties.td b/lldb/source/Plugins/Process/gdb-remote/Properties.td
new file mode 100644
index 00000000000..16e7723e306
--- /dev/null
+++ b/lldb/source/Plugins/Process/gdb-remote/Properties.td
@@ -0,0 +1,16 @@
+include "../../../../include/lldb/Core/PropertiesBase.td"
+
+let Definition = "processgdbremote" in {
+ def PacketTimeout: Property<"packet-timeout", "UInt64">,
+ Global,
+ DefaultUnsignedValue<5>,
+ Desc<"Specify the default packet timeout in seconds.">;
+ def TargetDefinitionFile: Property<"target-definition-file", "FileSpec">,
+ Global,
+ DefaultStringValue<"">,
+ Desc<"The file that provides the description for remote target registers.">;
+ def UseSVR4: Property<"use-libraries-svr4", "Boolean">,
+ Global,
+ DefaultFalse,
+ Desc<"If true, the libraries-svr4 feature will be used to get a hold of the process's loaded modules.">;
+}
diff --git a/lldb/source/Plugins/StructuredData/DarwinLog/CMakeLists.txt b/lldb/source/Plugins/StructuredData/DarwinLog/CMakeLists.txt
index 4df391276c0..0b921851aa1 100644
--- a/lldb/source/Plugins/StructuredData/DarwinLog/CMakeLists.txt
+++ b/lldb/source/Plugins/StructuredData/DarwinLog/CMakeLists.txt
@@ -1,3 +1,11 @@
+lldb_tablegen(Properties.inc -gen-lldb-property-defs
+ SOURCE Properties.td
+ TARGET LLDBPluginStructuredDataDarwinLogPropertiesGen)
+
+lldb_tablegen(PropertiesEnum.inc -gen-lldb-property-enum-defs
+ SOURCE Properties.td
+ TARGET LLDBPluginStructuredDataDarwinLogPropertiesEnumGen)
+
add_lldb_library(lldbPluginStructuredDataDarwinLog PLUGIN
StructuredDataDarwinLog.cpp
@@ -8,3 +16,7 @@ add_lldb_library(lldbPluginStructuredDataDarwinLog PLUGIN
lldbInterpreter
lldbTarget
)
+
+add_dependencies(lldbPluginStructuredDataDarwinLog
+ LLDBPluginStructuredDataDarwinLogPropertiesGen
+ LLDBPluginStructuredDataDarwinLogPropertiesEnumGen)
diff --git a/lldb/source/Plugins/StructuredData/DarwinLog/Properties.td b/lldb/source/Plugins/StructuredData/DarwinLog/Properties.td
new file mode 100644
index 00000000000..5c22158542f
--- /dev/null
+++ b/lldb/source/Plugins/StructuredData/DarwinLog/Properties.td
@@ -0,0 +1,12 @@
+include "../../../../include/lldb/Core/PropertiesBase.td"
+
+let Definition = "darwinlog" in {
+ def EnableOnStartup: Property<"enable-on-startup", "Boolean">,
+ Global,
+ DefaultFalse,
+ Desc<"Enable Darwin os_log collection when debugged process is launched or attached.">;
+ def AutoEnableOptions: Property<"auto-enable-options", "String">,
+ Global,
+ DefaultStringValue<"">,
+ Desc<"Specify the options to 'plugin structured-data darwin-log enable' that should be applied when automatically enabling logging on startup/attach.">;
+}
diff --git a/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp b/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp
index d94da5bedf1..0438fde7744 100644
--- a/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp
+++ b/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp
@@ -105,29 +105,14 @@ void SetGlobalEnableOptions(const DebuggerSP &debugger_sp,
/// Code to handle the StructuredDataDarwinLog settings
static constexpr PropertyDefinition g_properties[] = {
- {
- "enable-on-startup", // name
- OptionValue::eTypeBoolean, // type
- true, // global
- false, // default uint value
- nullptr, // default cstring value
- {}, // enum values
- "Enable Darwin os_log collection when debugged process is launched "
- "or attached." // description
- },
- {
- "auto-enable-options", // name
- OptionValue::eTypeString, // type
- true, // global
- 0, // default uint value
- "", // default cstring value
- {}, // enum values
- "Specify the options to 'plugin structured-data darwin-log enable' "
- "that should be applied when automatically enabling logging on "
- "startup/attach." // description
- }};
-
-enum { ePropertyEnableOnStartup = 0, ePropertyAutoEnableOptions = 1 };
+#define LLDB_PROPERTIES_darwinlog
+#include "Properties.inc"
+};
+
+enum {
+#define LLDB_PROPERTIES_darwinlog
+#include "PropertiesEnum.inc"
+};
class StructuredDataDarwinLogProperties : public Properties {
public:
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/CMakeLists.txt b/lldb/source/Plugins/SymbolFile/DWARF/CMakeLists.txt
index cd588cbd427..1ca4be3ebea 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/CMakeLists.txt
+++ b/lldb/source/Plugins/SymbolFile/DWARF/CMakeLists.txt
@@ -1,3 +1,11 @@
+lldb_tablegen(Properties.inc -gen-lldb-property-defs
+ SOURCE Properties.td
+ TARGET LLDBPluginSymbolFileDWARFPropertiesGen)
+
+lldb_tablegen(PropertiesEnum.inc -gen-lldb-property-enum-defs
+ SOURCE Properties.td
+ TARGET LLDBPluginSymbolFileDWARFPropertiesEnumGen)
+
add_lldb_library(lldbPluginSymbolFileDWARF PLUGIN
AppleDWARFIndex.cpp
DebugNamesDWARFIndex.cpp
@@ -52,3 +60,7 @@ add_lldb_library(lldbPluginSymbolFileDWARF PLUGIN
DebugInfoDWARF
Support
)
+
+add_dependencies(lldbPluginSymbolFileDWARF
+ LLDBPluginSymbolFileDWARFPropertiesGen
+ LLDBPluginSymbolFileDWARFPropertiesEnumGen)
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/Properties.td b/lldb/source/Plugins/SymbolFile/DWARF/Properties.td
new file mode 100644
index 00000000000..ef6ae349858
--- /dev/null
+++ b/lldb/source/Plugins/SymbolFile/DWARF/Properties.td
@@ -0,0 +1,12 @@
+include "../../../../include/lldb/Core/PropertiesBase.td"
+
+let Definition = "symbolfiledwarf" in {
+ def SymLinkPaths: Property<"comp-dir-symlink-paths", "FileSpecList">,
+ Global,
+ DefaultStringValue<"">,
+ Desc<"If the DW_AT_comp_dir matches any of these paths the symbolic links will be resolved at DWARF parse time.">;
+ def IgnoreIndexes: Property<"ignore-file-indexes", "Boolean">,
+ Global,
+ DefaultFalse,
+ Desc<"Ignore indexes present in the object files and always index DWARF manually.">;
+}
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
index 362e1525864..f14c2db53f9 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -114,17 +114,13 @@ using namespace lldb_private;
namespace {
static constexpr PropertyDefinition g_properties[] = {
- {"comp-dir-symlink-paths", OptionValue::eTypeFileSpecList, true, 0, nullptr,
- {},
- "If the DW_AT_comp_dir matches any of these paths the symbolic "
- "links will be resolved at DWARF parse time."},
- {"ignore-file-indexes", OptionValue::eTypeBoolean, true, 0, nullptr, {},
- "Ignore indexes present in the object files and always index DWARF "
- "manually."}};
+#define LLDB_PROPERTIES_symbolfiledwarf
+#include "Properties.inc"
+};
enum {
- ePropertySymLinkPaths,
- ePropertyIgnoreIndexes,
+#define LLDB_PROPERTIES_symbolfiledwarf
+#include "PropertiesEnum.inc"
};
class PluginProperties : public Properties {
OpenPOWER on IntegriCloud