30llvm::Expected<StructuredData::GenericSP>
36 thread_plan_sp, args_sp);
41 llvm::Expected<std::optional<StructuredData::ObjectSP>> obj_or_err =
44 return obj_or_err.takeError();
48 if (!obj || !obj->IsValid())
51 return obj->GetBooleanValue();
56 llvm::Expected<std::optional<StructuredData::ObjectSP>> obj_or_err =
59 return obj_or_err.takeError();
63 if (!obj || !obj->IsValid())
66 return obj->GetBooleanValue();
70 llvm::Expected<std::optional<StructuredData::ObjectSP>> obj_or_err =
73 return obj_or_err.takeError();
77 if (!obj || !obj->IsValid())
80 return obj->GetBooleanValue();
83llvm::Expected<lldb::StateType>
85 llvm::Expected<std::optional<StructuredData::ObjectSP>> obj_or_err =
88 return obj_or_err.takeError();
91 if (!obj || !obj->IsValid())
102 obj->Dump(reply,
false);
103 LLDB_LOG(log,
"should_step returned {0}, not a bool; stepping.",
115 const std::vector<llvm::StringRef> ci_usages = {
116 "thread step-scripted -C <script-name> [-k key -v value ...]"};
117 const std::vector<llvm::StringRef> api_usages = {
118 "SBThread.StepUsingScriptedThreadPlan"};
121 llvm::StringRef(
"Alter thread stepping logic and stop reason"),
#define LLDB_LOG(log,...)
The LLDB_LOG* macros defined below are the way to emit log messages.
static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, ABICreateInstance create_callback)
static bool UnregisterPlugin(ABICreateInstance create_callback)
static bool CreateInstance(lldb::ScriptLanguage language, ScriptedInterfaceUsages usages)
ScriptedPythonInterface(ScriptInterpreterPythonImpl &interpreter)
llvm::Expected< std::optional< T > > DispatchToOptional(llvm::StringRef method_name, Args &&...args)
Call an optional method_name, reporting "the script doesn't implementit" as std::nullopt rather than ...
llvm::Expected< StructuredData::GenericSP > CreatePluginObject(const ScriptedMetadata &scripted_metadata, StructuredData::Generic *script_obj, Args... args)
llvm::Error GetStopDescription(lldb::StreamSP &stream) override
llvm::Expected< bool > ShouldStop(Event *event) override
static llvm::StringRef GetPluginNameStatic()
llvm::Expected< bool > IsStale() override
llvm::Expected< StructuredData::GenericSP > CreatePluginObject(const ScriptedMetadata &scripted_metadata, lldb::ThreadPlanSP thread_plan_sp) override
ScriptedThreadPlanPythonInterface(ScriptInterpreterPythonImpl &interpreter)
llvm::Expected< bool > ExplainsStop(Event *event) override
llvm::Expected< lldb::StateType > GetRunState() override
const char * GetData() const
std::shared_ptr< Object > ObjectSP
A class that represents a running process on the host machine.
Log * GetLog(Cat mask)
Retrieve the Log object for the channel associated with the given log enum.
@ eScriptedExtensionScriptedThreadPlan
std::shared_ptr< lldb_private::ThreadPlan > ThreadPlanSP
@ eStateRunning
Process or thread is running and can't be examined.
@ eStateStepping
Process or thread is in the process of stepping and can not be examined.
std::shared_ptr< lldb_private::Stream > StreamSP