diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2022-07-03 14:10:23 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2022-07-03 14:10:23 +0000 |
| commit | 145449b1e420787bb99721a429341fa6be3adfb6 (patch) | |
| tree | 1d56ae694a6de602e348dd80165cf881a36600ed /lldb/source/Core/PluginManager.cpp | |
| parent | ecbca9f5fb7d7613d2b94982c4825eb0d33d6842 (diff) | |
Diffstat (limited to 'lldb/source/Core/PluginManager.cpp')
| -rw-r--r-- | lldb/source/Core/PluginManager.cpp | 48 |
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, |
