-
Notifications
You must be signed in to change notification settings - Fork 15.3k
[lldb] Introduce ScriptedFrameProvider for real threads #161870
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -19,6 +19,7 @@ | |
| #include "lldb/API/SBLaunchInfo.h" | ||
| #include "lldb/API/SBStatisticsOptions.h" | ||
| #include "lldb/API/SBSymbolContextList.h" | ||
| #include "lldb/API/SBThreadCollection.h" | ||
| #include "lldb/API/SBType.h" | ||
| #include "lldb/API/SBValue.h" | ||
| #include "lldb/API/SBWatchpoint.h" | ||
|
|
@@ -986,6 +987,35 @@ class LLDB_API SBTarget { | |
|
|
||
| lldb::SBMutex GetAPIMutex() const; | ||
|
|
||
| /// Register a scripted frame provider for this target. | ||
medismailben marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| /// If a scripted frame provider with the same name and same argument | ||
| /// dictionary is already registered on this target, it will be overwritten. | ||
| /// | ||
| /// \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. | ||
| /// | ||
| /// \param[out] error | ||
| /// An error object indicating success or failure. | ||
| /// | ||
| /// \return | ||
| /// A unique identifier for the frame provider descriptor that was | ||
| /// registered. 0 if the registration failed. | ||
| uint32_t RegisterScriptedFrameProvider(const char *class_name, | ||
| lldb::SBStructuredData args_dict, | ||
| lldb::SBError &error); | ||
|
|
||
| /// Remove a scripted frame provider from this target by name. | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What happens to the already matched threads when you remove the provider? You should say this in the docs. If their frame provider object also gets deleted, you probably also need a "disable" as well as a "remove". Since you're attaching a python object to the thread when it matches your provider, and that might have state, the user might very well want to stop it providing frames temporarily, but not lose that state. |
||
| /// | ||
| /// \param[in] provider_id | ||
| /// The id of the frame provider class to remove. | ||
| /// | ||
| /// \return | ||
| /// An error object indicating success or failure. | ||
| lldb::SBError RemoveScriptedFrameProvider(uint32_t provider_id); | ||
|
|
||
| protected: | ||
| friend class SBAddress; | ||
| friend class SBAddressRange; | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.