12#include "lldb/Host/Config.h"
32llvm::Expected<StructuredData::GenericSP>
37 std::make_shared<ExecutionContextRef>(exe_ctx);
40 scripted_metadata, script_obj, exe_ctx_ref_sp, args_sp);
85 return obj->GetStringValue().str();
88std::optional<std::string>
97 return obj->GetStringValue().str();
108 return obj->GetBooleanValue();
119 return obj->GetBooleanValue();
130 return obj->GetBooleanValue();
153 return obj->GetAsString()->GetValue().str();
168std::optional<lldb::ValueType>
173 "get_value_type_for_variable",
error, std::move(value));
177 LLVM_PRETTY_FUNCTION,
error.AsCString(),
error);
185 llvm::StringRef expr, uint32_t options,
Status &status) {
188 dispatch_error, expr.data(), options,
191 if (dispatch_error.
Fail()) {
193 LLVM_PRETTY_FUNCTION, dispatch_error.
AsCString(), dispatch_error);
202 "Provide frame state for scripted threads and frame providers.",
static llvm::raw_ostream & error(Stream &strm)
ScriptInterpreterPythonImpl::Locker Locker
"lldb/Target/ExecutionContext.h" A class that contains an execution context.
static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, ABICreateInstance create_callback)
static bool UnregisterPlugin(ABICreateInstance create_callback)
std::optional< std::string > GetRegisterContext() override
lldb::user_id_t GetID() override
static llvm::StringRef GetPluginNameStatic()
std::optional< lldb::ValueType > GetValueTypeForVariable(lldb::ValueObjectSP value) override
lldb::addr_t GetPC() override
lldb::ValueObjectListSP GetVariables() override
std::optional< std::string > GetDisplayFunctionName() override
std::optional< SymbolContext > GetSymbolContext() override
StructuredData::DictionarySP GetRegisterInfo() override
bool IsInlined() override
lldb::ValueObjectSP GetValueObjectForVariableExpression(llvm::StringRef expr, uint32_t options, Status &status) override
std::optional< std::string > GetFunctionName() override
bool IsArtificial() override
llvm::Expected< StructuredData::GenericSP > CreatePluginObject(llvm::StringRef class_name, ExecutionContext &exe_ctx, StructuredData::DictionarySP args_sp, StructuredData::Generic *script_obj=nullptr) override
ScriptedFramePythonInterface(ScriptInterpreterPythonImpl &interpreter)
static Ret ErrorWithMessage(llvm::StringRef caller_name, llvm::StringRef error_msg, Status &error, LLDBLog log_category=LLDBLog::Process)
static bool CheckStructuredDataObject(llvm::StringRef caller, T obj, Status &error)
static bool CreateInstance(lldb::ScriptLanguage language, ScriptedInterfaceUsages usages)
ScriptedPythonInterface(ScriptInterpreterPythonImpl &interpreter)
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)
bool Fail() const
Test for error condition.
const char * AsCString(const char *default_error_str="unknown error") const
Get the error string associated with the current error.
std::shared_ptr< Dictionary > DictionarySP
std::shared_ptr< Object > ObjectSP
#define LLDB_INVALID_ADDRESS
#define LLDB_INVALID_FRAME_ID
A class that represents a running process on the host machine.
@ eScriptedExtensionScriptedFrame
std::shared_ptr< lldb_private::ValueObject > ValueObjectSP
std::shared_ptr< lldb_private::ValueObjectList > ValueObjectListSP
std::shared_ptr< lldb_private::ExecutionContextRef > ExecutionContextRefSP