[Lldb-commits] [lldb] [lldb/Target] Add SyntheticFrameProvider class (PR #166664)
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Thu Nov 6 10:12:51 PST 2025
================
@@ -356,6 +356,34 @@ class PluginManager {
GetScriptInterpreterForLanguage(lldb::ScriptLanguage script_lang,
Debugger &debugger);
+ // SyntheticFrameProvider (scripted)
+ static bool
+ RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
+ ScriptedFrameProviderCreateInstance create_callback);
+
+ static bool
+ UnregisterPlugin(ScriptedFrameProviderCreateInstance create_callback);
+
+ static ScriptedFrameProviderCreateInstance
+ GetScriptedFrameProviderCreateCallbackAtIndex(uint32_t idx);
+
+ static ScriptedFrameProviderCreateInstance
+ GetScriptedFrameProviderCreateCallbackForPluginName(llvm::StringRef name);
+
+ // SyntheticFrameProvider (C++)
+ static bool
+ RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
+ SyntheticFrameProviderCreateInstance create_callback);
+
+ static bool
+ UnregisterPlugin(SyntheticFrameProviderCreateInstance create_callback);
+
+ static SyntheticFrameProviderCreateInstance
+ GetSyntheticFrameProviderCreateCallbackAtIndex(uint32_t idx);
+
+ static SyntheticFrameProviderCreateInstance
+ GetSyntheticFrameProviderCreateCallbackForPluginName(llvm::StringRef name);
----------------
JDevlieghere wrote:
Now this looks like two plugins. Can we not do one plugin, with two callbacks, one for creating a "Scripted" instance, and one for the C++ backed instance?
Something like:
```
static bool RegisterPlugin(
llvm::StringRef name, llvm::StringRef description,
SyntheticFrameProviderCreateInstance create_callback,
SyntheticFrameProviderCreateScriptedInstance create_scripted_callback)
```
https://github.com/llvm/llvm-project/pull/166664
More information about the lldb-commits
mailing list