[Lldb-commits] [lldb] [lldb] Introduce ScriptedFrameProvider for real threads (PR #161870)

Med Ismail Bennani via lldb-commits lldb-commits at lists.llvm.org
Fri Nov 7 13:58:34 PST 2025


================
@@ -986,6 +986,34 @@ class LLDB_API SBTarget {
 
   lldb::SBMutex GetAPIMutex() const;
 
+  /// Register a scripted frame provider for this target.
+  ///
+  /// \param[in] class_name
+  ///     The name of the Python class that implements the frame provider.
+  ///
+  /// \param[in] args_dict
+  ///     A dictionary of arguments to pass to the frame provider class.
+  ///
+  /// \return
+  ///     An error object indicating success or failure.
+  lldb::SBError RegisterScriptedFrameProvider(const char *class_name,
+                                              lldb::SBStructuredData args_dict);
+
+  /// Remove a scripted frame provider from this target by name.
+  ///
+  /// \param[in] provider_name
+  ///     The name of the frame provider class to remove.
+  ///
+  /// \return
+  ///     An error object indicating success or failure.
+  lldb::SBError RemoveScriptedFrameProvider(const char *provider_name);
+
+  /// Clear the scripted frame provider for this target.
----------------
medismailben wrote:

See https://github.com/llvm/llvm-project/pull/161870#discussion_r2482534752

Currently the target can have multiple scripted frame provider descriptor however the threads can only have 1 provider at a time. I'm planning on being able to chain providers (both internal plugins & scripted implementations) in a follow-up. I actually think this API should be called `RemoveSyntheticFrameProvider` not `Scripted` because the user might want to disable an lldb internal frame provider.

https://github.com/llvm/llvm-project/pull/161870


More information about the lldb-commits mailing list