LLDB mainline
lldb_private::ScriptedFrameInterface Class Referenceabstract

#include <ScriptedFrameInterface.h>

Inheritance diagram for lldb_private::ScriptedFrameInterface:
[legend]

Public Member Functions

virtual llvm::Expected< StructuredData::GenericSP > CreatePluginObject (llvm::StringRef class_name, ExecutionContext &exe_ctx, StructuredData::DictionarySP args_sp, StructuredData::Generic *script_obj=nullptr)=0
virtual lldb::user_id_t GetID ()
virtual lldb::addr_t GetPC ()
virtual lldb::addr_t GetCFA ()
virtual std::optional< SymbolContext > GetSymbolContext ()
virtual std::optional< std::string > GetFunctionName ()
virtual std::optional< std::string > GetDisplayFunctionName ()
virtual bool IsInlined ()
virtual bool IsArtificial ()
virtual bool IsHidden ()
virtual StructuredData::DictionarySP GetRegisterInfo ()
virtual std::optional< std::string > GetRegisterContext ()
virtual lldb::ValueObjectListSP GetVariables ()
virtual std::optional< lldb::ValueType > GetValueTypeForVariable (lldb::ValueObjectSP valobj)
 Report which kind of variable valobj is presented as, for instance eValueTypeVariableLocal to have it listed among the frame's locals.
virtual lldb::ValueObjectSP GetValueObjectForVariableExpression (llvm::StringRef expr, uint32_t options, Status &error)
virtual llvm::Expected< ScriptedMetadata > GetThreadPlanMetadataForStepType (lldb::StepType step_type)
Public Member Functions inherited from lldb_private::ScriptedInterface
 ScriptedInterface ()=default
virtual ~ScriptedInterface ()=default
StructuredData::GenericSP GetScriptObjectInstance ()
const std::optional< ScriptedMetadata > & GetScriptedMetadata () const
virtual bool UserCanRunDirectly () const
 Whether the user can invoke this extension directly, the way a scripted command can.
virtual llvm::SmallVector< AbstractMethodRequirement > GetAbstractMethodRequirements () const =0
virtual llvm::SmallVector< llvm::StringLiteral > GetOptionalMethods () const
 Methods a script may legitimately leave out, for which LLDB has a documented answer.
virtual llvm::Expected< FileSpec > GetScriptedModulePath ()
llvm::SmallVector< llvm::StringLiteral > const GetAbstractMethods () const

Additional Inherited Members

Static Public Member Functions inherited from lldb_private::ScriptedInterface
template<typename Ret>
static Ret ErrorWithMessage (llvm::StringRef caller_name, llvm::StringRef user_msg, Status &error, LLDBLog log_category=LLDBLog::Process)
static bool CreateInstance (lldb::ScriptLanguage language, ScriptedInterfaceUsages usages)
Protected Attributes inherited from lldb_private::ScriptedInterface
StructuredData::GenericSP m_object_instance_sp
std::optional< ScriptedMetadata > m_scripted_metadata

Detailed Description

Definition at line 20 of file ScriptedFrameInterface.h.

Member Function Documentation

◆ CreatePluginObject()

virtual llvm::Expected< StructuredData::GenericSP > lldb_private::ScriptedFrameInterface::CreatePluginObject ( llvm::StringRef class_name,
ExecutionContext & exe_ctx,
StructuredData::DictionarySP args_sp,
StructuredData::Generic * script_obj = nullptr )
pure virtual

◆ GetCFA()

virtual lldb::addr_t lldb_private::ScriptedFrameInterface::GetCFA ( )
inlinevirtual

Reimplemented in lldb_private::ScriptedFramePythonInterface.

Definition at line 31 of file ScriptedFrameInterface.h.

References LLDB_INVALID_ADDRESS.

◆ GetDisplayFunctionName()

virtual std::optional< std::string > lldb_private::ScriptedFrameInterface::GetDisplayFunctionName ( )
inlinevirtual

Reimplemented in lldb_private::ScriptedFramePythonInterface.

Definition at line 39 of file ScriptedFrameInterface.h.

◆ GetFunctionName()

virtual std::optional< std::string > lldb_private::ScriptedFrameInterface::GetFunctionName ( )
inlinevirtual

Reimplemented in lldb_private::ScriptedFramePythonInterface.

Definition at line 37 of file ScriptedFrameInterface.h.

◆ GetID()

virtual lldb::user_id_t lldb_private::ScriptedFrameInterface::GetID ( )
inlinevirtual

Reimplemented in lldb_private::ScriptedFramePythonInterface.

Definition at line 27 of file ScriptedFrameInterface.h.

References LLDB_INVALID_FRAME_ID.

◆ GetPC()

virtual lldb::addr_t lldb_private::ScriptedFrameInterface::GetPC ( )
inlinevirtual

Reimplemented in lldb_private::ScriptedFramePythonInterface.

Definition at line 29 of file ScriptedFrameInterface.h.

References LLDB_INVALID_ADDRESS.

◆ GetRegisterContext()

virtual std::optional< std::string > lldb_private::ScriptedFrameInterface::GetRegisterContext ( )
inlinevirtual

Reimplemented in lldb_private::ScriptedFramePythonInterface.

Definition at line 51 of file ScriptedFrameInterface.h.

◆ GetRegisterInfo()

virtual StructuredData::DictionarySP lldb_private::ScriptedFrameInterface::GetRegisterInfo ( )
inlinevirtual

Reimplemented in lldb_private::ScriptedFramePythonInterface.

Definition at line 49 of file ScriptedFrameInterface.h.

◆ GetSymbolContext()

virtual std::optional< SymbolContext > lldb_private::ScriptedFrameInterface::GetSymbolContext ( )
inlinevirtual

Reimplemented in lldb_private::ScriptedFramePythonInterface.

Definition at line 33 of file ScriptedFrameInterface.h.

◆ GetThreadPlanMetadataForStepType()

virtual llvm::Expected< ScriptedMetadata > lldb_private::ScriptedFrameInterface::GetThreadPlanMetadataForStepType ( lldb::StepType step_type)
inlinevirtual

Reimplemented in lldb_private::ScriptedFramePythonInterface.

Definition at line 81 of file ScriptedFrameInterface.h.

◆ GetValueObjectForVariableExpression()

virtual lldb::ValueObjectSP lldb_private::ScriptedFrameInterface::GetValueObjectForVariableExpression ( llvm::StringRef expr,
uint32_t options,
Status & error )
inlinevirtual

Reimplemented in lldb_private::ScriptedFramePythonInterface.

Definition at line 75 of file ScriptedFrameInterface.h.

References error().

◆ GetValueTypeForVariable()

virtual std::optional< lldb::ValueType > lldb_private::ScriptedFrameInterface::GetValueTypeForVariable ( lldb::ValueObjectSP valobj)
inlinevirtual

Report which kind of variable valobj is presented as, for instance eValueTypeVariableLocal to have it listed among the frame's locals.

A ValueObject the ScriptedFrame built itself should have eValueTypeSyntheticFlag set in the ValueType it reports. LLDB uses that flag to skip the scope rules it applies to a declared variable, which a made-up ValueObject cannot satisfy: it has no storage to locate, so an in-scope-only listing drops it. A variable the frame is only forwarding should leave the flag clear, so those rules still apply to it.

If this returns std::nullopt, LLDB keeps the ValueType the ValueObject already reports and adds the synthetic flag to it.

Reimplemented in lldb_private::ScriptedFramePythonInterface.

Definition at line 70 of file ScriptedFrameInterface.h.

◆ GetVariables()

virtual lldb::ValueObjectListSP lldb_private::ScriptedFrameInterface::GetVariables ( )
inlinevirtual

Reimplemented in lldb_private::ScriptedFramePythonInterface.

Definition at line 55 of file ScriptedFrameInterface.h.

◆ IsArtificial()

virtual bool lldb_private::ScriptedFrameInterface::IsArtificial ( )
inlinevirtual

Reimplemented in lldb_private::ScriptedFramePythonInterface.

Definition at line 45 of file ScriptedFrameInterface.h.

◆ IsHidden()

virtual bool lldb_private::ScriptedFrameInterface::IsHidden ( )
inlinevirtual

Reimplemented in lldb_private::ScriptedFramePythonInterface.

Definition at line 47 of file ScriptedFrameInterface.h.

◆ IsInlined()

virtual bool lldb_private::ScriptedFrameInterface::IsInlined ( )
inlinevirtual

Reimplemented in lldb_private::ScriptedFramePythonInterface.

Definition at line 43 of file ScriptedFrameInterface.h.


The documentation for this class was generated from the following file: