17 StackFrameSP borrowed_frame_sp, uint32_t new_frame_index,
18 std::optional<uint32_t> new_concrete_frame_index)
20 borrowed_frame_sp->
GetThread(), new_frame_index,
24 borrowed_frame_sp->
GetStackID().GetCallFrameAddressWithoutMetadata(),
29 if (new_concrete_frame_index)
95 bool must_have_valid_location) {
97 must_have_valid_location);
104 var_expr, use_dynamic, options, var_sp,
error);
186 return obj->
isA(&
ID);
static llvm::raw_ostream & error(Stream &strm)
A section + offset based address class.
A class that describes a single lexical block.
const Address & GetFrameCodeAddress() override
Get an Address for the current pc value in this StackFrame.
static bool classof(const StackFrame *obj)
const char * GetDisplayFunctionName() override
Get the frame's demangled display name.
SourceLanguage GuessLanguage() override
Similar to GetLanguage(), but is allowed to take a potentially incorrect guess if exact information i...
lldb::VariableListSP GetInScopeVariableList(bool get_file_globals, bool must_have_valid_location=false) override
Retrieve the list of variables that are in scope at this StackFrame's pc.
bool isA(const void *ClassID) const override
bool IsInlined() override
Query whether this frame is a concrete frame on the call stack, or if it is an inlined frame derived ...
void SetFrameIndex(uint32_t index)
bool IsHidden() override
Query whether this frame should be hidden from backtraces.
lldb::ValueObjectSP FindVariable(ConstString name) override
Attempt to reconstruct the ValueObject for a variable with a given name from within the current Stack...
lldb::ValueObjectSP GuessValueForRegisterAndOffset(ConstString reg, int64_t offset) override
Attempt to reconstruct the ValueObject for the address contained in a given register plus an offset.
Block * GetFrameBlock() override
Get the current lexical scope block for this StackFrame, if possible.
bool ChangePC(lldb::addr_t pc) override
Change the pc value for a given thread.
lldb::ValueObjectSP GuessValueForAddress(lldb::addr_t addr) override
Attempt to econstruct the ValueObject for a given raw address touched by the current instruction.
uint32_t m_new_concrete_frame_index
StackID & GetStackID() override
lldb::StackFrameSP m_borrowed_frame_sp
const char * GetFunctionName() override
Get the frame's demangled name.
DWARFExpressionList * GetFrameBaseExpression(Status *error_ptr) override
Get the DWARFExpressionList corresponding to the Canonical Frame Address.
llvm::Error GetFrameBaseValue(Scalar &value) override
Return the Canonical Frame Address (DWARF term) for this frame.
lldb::RegisterContextSP GetRegisterContext() override
Get the RegisterContext for this frame, if possible.
lldb::StackFrameSP GetBorrowedFrame() const
Get the underlying borrowed frame.
const SymbolContext & GetSymbolContext(lldb::SymbolContextItem resolve_scope) override
Provide a SymbolContext for this StackFrame's current pc value.
bool IsHistorical() const override
Query whether this frame is part of a historical backtrace.
BorrowedStackFrame(lldb::StackFrameSP borrowed_frame_sp, uint32_t new_frame_index, std::optional< uint32_t > new_concrete_frame_index=std::nullopt)
Construct a BorrowedStackFrame that wraps an existing frame.
bool IsSynthetic() const override
Query whether this frame is synthetic.
uint32_t GetFrameIndex() const override
Query this frame to find what frame it is in this Thread's StackFrameList.
const char * Disassemble() override
Return the disassembly for the instructions of this StackFrame's function as a single C string.
uint32_t m_new_frame_index
VariableList * GetVariableList(bool get_file_globals, Status *error_ptr) override
Retrieve the list of variables whose scope either:
bool HasDebugInformation() override
Determine whether this StackFrame has debug information available or not.
uint32_t GetConcreteFrameIndex() override
Get the concrete frame index for this borrowed frame.
bool IsArtificial() const override
Query whether this frame is artificial (e.g a synthesized result of inferring missing tail call frame...
Address GetFrameCodeAddressForSymbolication() override
Get the current code Address suitable for symbolication, may not be the same as GetFrameCodeAddress()...
StructuredData::ObjectSP GetLanguageSpecificData() override
Language plugins can use this API to report language-specific runtime information about this compile ...
SourceLanguage GetLanguage() override
Query this frame to determine what the default language should be when parsing expressions given the ...
lldb::ValueObjectSP GetValueObjectForFrameVariable(const lldb::VariableSP &variable_sp, lldb::DynamicValueType use_dynamic) override
Create a ValueObject for a given Variable in this StackFrame.
lldb::ValueObjectSP GetValueForVariableExpressionPath(llvm::StringRef var_expr, lldb::DynamicValueType use_dynamic, uint32_t options, lldb::VariableSP &var_sp, Status &error) override
Create a ValueObject for a variable name / pathname, possibly including simple dereference/child sele...
lldb::RecognizedStackFrameSP GetRecognizedFrame() override
A uniqued constant string class.
"lldb/Expression/DWARFExpressionList.h" Encapsulates a range map from file address range to a single ...
lldb::ThreadSP GetThread() const
bool m_behaves_like_zeroth_frame
Whether this frame behaves like the zeroth frame, in the sense that its pc value might not immediatel...
StackFrame(const lldb::ThreadSP &thread_sp, lldb::user_id_t frame_idx, lldb::user_id_t concrete_frame_idx, lldb::addr_t cfa, bool cfa_is_valid, lldb::addr_t pc, Kind frame_kind, bool artificial, bool behaves_like_zeroth_frame, const SymbolContext *sc_ptr)
Construct a StackFrame object without supplying a RegisterContextSP.
virtual bool isA(const void *ClassID) const
const lldb::RegisterContextSP & GetRegisterContextSP() const
std::shared_ptr< Object > ObjectSP
Defines a symbol context baton that can be handed other debug core functions.
#define LLDB_INVALID_FRAME_ID
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::StackFrame > StackFrameSP
std::shared_ptr< lldb_private::RecognizedStackFrame > RecognizedStackFrameSP
std::shared_ptr< lldb_private::ValueObject > ValueObjectSP
std::shared_ptr< lldb_private::VariableList > VariableListSP
std::shared_ptr< lldb_private::Variable > VariableSP
std::shared_ptr< lldb_private::RegisterContext > RegisterContextSP
A type-erased pair of llvm::dwarf::SourceLanguageName and version.