aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Core/PluginManager.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2022-07-03 14:10:23 +0000
committerDimitry Andric <dim@FreeBSD.org>2022-07-03 14:10:23 +0000
commit145449b1e420787bb99721a429341fa6be3adfb6 (patch)
tree1d56ae694a6de602e348dd80165cf881a36600ed /lldb/source/Core/PluginManager.cpp
parentecbca9f5fb7d7613d2b94982c4825eb0d33d6842 (diff)
Diffstat (limited to 'lldb/source/Core/PluginManager.cpp')
-rw-r--r--lldb/source/Core/PluginManager.cpp48
1 files changed, 34 insertions, 14 deletions
diff --git a/lldb/source/Core/PluginManager.cpp b/lldb/source/Core/PluginManager.cpp
index 37050494aa2e..38a9573411f4 100644
--- a/lldb/source/Core/PluginManager.cpp
+++ b/lldb/source/Core/PluginManager.cpp
@@ -621,9 +621,10 @@ struct ObjectFileInstance : public PluginInstance<ObjectFileCreateInstance> {
CallbackType create_callback,
ObjectFileCreateMemoryInstance create_memory_callback,
ObjectFileGetModuleSpecifications get_module_specifications,
- ObjectFileSaveCore save_core)
- : PluginInstance<ObjectFileCreateInstance>(name, description,
- create_callback),
+ ObjectFileSaveCore save_core,
+ DebuggerInitializeCallback debugger_init_callback)
+ : PluginInstance<ObjectFileCreateInstance>(
+ name, description, create_callback, debugger_init_callback),
create_memory_callback(create_memory_callback),
get_module_specifications(get_module_specifications),
save_core(save_core) {}
@@ -644,10 +645,11 @@ bool PluginManager::RegisterPlugin(
ObjectFileCreateInstance create_callback,
ObjectFileCreateMemoryInstance create_memory_callback,
ObjectFileGetModuleSpecifications get_module_specifications,
- ObjectFileSaveCore save_core) {
+ ObjectFileSaveCore save_core,
+ DebuggerInitializeCallback debugger_init_callback) {
return GetObjectFileInstances().RegisterPlugin(
name, description, create_callback, create_memory_callback,
- get_module_specifications, save_core);
+ get_module_specifications, save_core, debugger_init_callback);
}
bool PluginManager::UnregisterPlugin(ObjectFileCreateInstance create_callback) {
@@ -1031,14 +1033,14 @@ PluginManager::GetSymbolVendorCreateCallbackAtIndex(uint32_t idx) {
#pragma mark Trace
struct TraceInstance
- : public PluginInstance<TraceCreateInstanceForSessionFile> {
+ : public PluginInstance<TraceCreateInstanceFromBundle> {
TraceInstance(
llvm::StringRef name, llvm::StringRef description,
- CallbackType create_callback_for_session_file,
+ CallbackType create_callback_from_bundle,
TraceCreateInstanceForLiveProcess create_callback_for_live_process,
llvm::StringRef schema)
- : PluginInstance<TraceCreateInstanceForSessionFile>(
- name, description, create_callback_for_session_file),
+ : PluginInstance<TraceCreateInstanceFromBundle>(
+ name, description, create_callback_from_bundle),
schema(schema),
create_callback_for_live_process(create_callback_for_live_process) {}
@@ -1055,21 +1057,21 @@ static TraceInstances &GetTracePluginInstances() {
bool PluginManager::RegisterPlugin(
llvm::StringRef name, llvm::StringRef description,
- TraceCreateInstanceForSessionFile create_callback_for_session_file,
+ TraceCreateInstanceFromBundle create_callback_from_bundle,
TraceCreateInstanceForLiveProcess create_callback_for_live_process,
llvm::StringRef schema) {
return GetTracePluginInstances().RegisterPlugin(
- name, description, create_callback_for_session_file,
+ name, description, create_callback_from_bundle,
create_callback_for_live_process, schema);
}
bool PluginManager::UnregisterPlugin(
- TraceCreateInstanceForSessionFile create_callback_for_session_file) {
+ TraceCreateInstanceFromBundle create_callback_from_bundle) {
return GetTracePluginInstances().UnregisterPlugin(
- create_callback_for_session_file);
+ create_callback_from_bundle);
}
-TraceCreateInstanceForSessionFile
+TraceCreateInstanceFromBundle
PluginManager::GetTraceCreateCallback(llvm::StringRef plugin_name) {
return GetTracePluginInstances().GetCallbackForName(plugin_name);
}
@@ -1364,6 +1366,7 @@ LanguageSet PluginManager::GetREPLAllTypeSystemSupportedLanguages() {
void PluginManager::DebuggerInitialize(Debugger &debugger) {
GetDynamicLoaderInstances().PerformDebuggerCallback(debugger);
GetJITLoaderInstances().PerformDebuggerCallback(debugger);
+ GetObjectFileInstances().PerformDebuggerCallback(debugger);
GetPlatformInstances().PerformDebuggerCallback(debugger);
GetProcessInstances().PerformDebuggerCallback(debugger);
GetSymbolFileInstances().PerformDebuggerCallback(debugger);
@@ -1490,6 +1493,7 @@ CreateSettingForPlugin(Debugger &debugger, ConstString plugin_type_name,
static const char *kDynamicLoaderPluginName("dynamic-loader");
static const char *kPlatformPluginName("platform");
static const char *kProcessPluginName("process");
+static const char *kObjectFilePluginName("object-file");
static const char *kSymbolFilePluginName("symbol-file");
static const char *kJITLoaderPluginName("jit-loader");
static const char *kStructuredDataPluginName("structured-data");
@@ -1543,6 +1547,22 @@ bool PluginManager::CreateSettingForProcessPlugin(
}
lldb::OptionValuePropertiesSP
+PluginManager::GetSettingForObjectFilePlugin(Debugger &debugger,
+ ConstString setting_name) {
+ return GetSettingForPlugin(debugger, setting_name,
+ ConstString(kObjectFilePluginName));
+}
+
+bool PluginManager::CreateSettingForObjectFilePlugin(
+ Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
+ ConstString description, bool is_global_property) {
+ return CreateSettingForPlugin(
+ debugger, ConstString(kObjectFilePluginName),
+ ConstString("Settings for object file plug-ins"), properties_sp,
+ description, is_global_property);
+}
+
+lldb::OptionValuePropertiesSP
PluginManager::GetSettingForSymbolFilePlugin(Debugger &debugger,
ConstString setting_name) {
return GetSettingForPlugin(debugger, setting_name,