34 constexpr bool fail_value =
true;
42 return obj->GetBooleanValue(fail_value);
45llvm::Expected<StructuredData::GenericSP>
50 return llvm::createStringError(
"invalid frame list");
53 scripted_metadata,
nullptr, input_frames, scripted_metadata.
GetArgsSP());
57 llvm::StringRef class_name) {
65 return obj->GetStringValue().str();
68std::optional<uint32_t>
81 return static_cast<uint32_t
>(int_obj->GetValue());
107 const std::vector<llvm::StringRef> ci_usages = {
108 "target frame-provider register -C <script-name> [-k key -v value ...]",
109 "target frame-provider list",
110 "target frame-provider remove <provider-name>",
111 "target frame-provider clear"};
112 const std::vector<llvm::StringRef> api_usages = {
113 "SBTarget.RegisterScriptedFrameProvider",
114 "SBTarget.RemoveScriptedFrameProvider",
115 "SBTarget.ClearScriptedFrameProvider"};
118 llvm::StringRef(
"Provide scripted stack frames for threads"),
static llvm::raw_ostream & error(Stream &strm)
ScriptInterpreterPythonImpl::Locker Locker
static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, ABICreateInstance create_callback)
static bool UnregisterPlugin(ABICreateInstance create_callback)
llvm::Expected< StructuredData::GenericSP > CreatePluginObject(const ScriptedMetadata &scripted_metadata, lldb::StackFrameListSP input_frames) override
static bool CreateInstance(lldb::ScriptLanguage language, ScriptedInterfaceUsages usages)
StructuredData::ObjectSP GetFrameAtIndex(uint32_t index) override
ScriptedFrameProviderPythonInterface(ScriptInterpreterPythonImpl &interpreter)
std::optional< uint32_t > GetPriority(llvm::StringRef class_name) override
Get the priority of this frame provider.
bool AppliesToThread(llvm::StringRef class_name, lldb::ThreadSP thread_sp) override
static llvm::StringRef GetPluginNameStatic()
std::string GetDescription(llvm::StringRef class_name) override
Get a description string for the frame provider.
static bool CheckStructuredDataObject(llvm::StringRef caller, T obj, Status &error)
ScriptedPythonInterface(ScriptInterpreterPythonImpl &interpreter)
T CallStaticMethod(llvm::StringRef class_name, llvm::StringRef method_name, Status &error, Args &&...args)
Call a static method on a Python class without creating an instance.
T Dispatch(llvm::StringRef method_name, Status &error, Args &&...args)
llvm::Expected< StructuredData::GenericSP > CreatePluginObject(const ScriptedMetadata &scripted_metadata, StructuredData::Generic *script_obj, Args... args)
std::shared_ptr< Object > ObjectSP
Integer< uint64_t > UnsignedInteger
A class that represents a running process on the host machine.
ScriptLanguage
Script interpreter types.
std::shared_ptr< lldb_private::Thread > ThreadSP
std::shared_ptr< lldb_private::StackFrameList > StackFrameListSP