LLDB mainline
|
#include <StackID.h>
Public Member Functions | |
StackID ()=default | |
StackID (lldb::addr_t pc, lldb::addr_t cfa, SymbolContextScope *symbol_scope, Process *process) | |
~StackID ()=default | |
lldb::addr_t | GetPC () const |
lldb::addr_t | GetCallFrameAddressWithMetadata () const |
lldb::addr_t | GetCallFrameAddressWithoutMetadata () const |
SymbolContextScope * | GetSymbolContextScope () const |
void | SetSymbolContextScope (SymbolContextScope *symbol_scope) |
void | Clear () |
bool | IsValid () const |
void | Dump (Stream *s) |
Protected Member Functions | |
void | SetPC (lldb::addr_t pc, Process *process) |
void | SetCFA (lldb::addr_t cfa, Process *process) |
Protected Attributes | |
lldb::addr_t | m_pc = LLDB_INVALID_ADDRESS |
The pc value for the function/symbol for this frame. | |
lldb::addr_t | m_cfa = LLDB_INVALID_ADDRESS |
The call frame address (stack pointer) value at the beginning of the function that uniquely identifies this frame (along with m_symbol_scope below) | |
lldb::addr_t | m_cfa_with_metadata = LLDB_INVALID_ADDRESS |
The cfa with metadata (i.e. prior to Process::FixAddress). | |
SymbolContextScope * | m_symbol_scope = nullptr |
If nullptr, there is no block or symbol for this frame. |
Friends | |
class | StackFrame |
|
default |
References pc.
|
explicit |
Definition at line 18 of file StackID.cpp.
References lldb_private::Process::FixCodeAddress(), lldb_private::Process::FixDataAddress(), m_cfa, m_cfa_with_metadata, m_pc, m_symbol_scope, and pc.
|
default |
|
inline |
Definition at line 41 of file StackID.h.
References LLDB_INVALID_ADDRESS, m_cfa, m_pc, and m_symbol_scope.
void StackID::Dump | ( | Stream * | s | ) |
Definition at line 37 of file StackID.cpp.
References lldb_private::SymbolContext::block, lldb_private::Symbol::GetID(), lldb_private::UserID::GetID(), m_cfa, m_pc, m_symbol_scope, lldb_private::Stream::Printf(), lldb_private::Stream::PutCString(), and lldb_private::SymbolContext::symbol.
Referenced by lldb_private::StackFrameList::Dump().
|
inline |
Definition at line 29 of file StackID.h.
References m_cfa_with_metadata.
|
inline |
Definition at line 33 of file StackID.h.
References m_cfa.
Referenced by lldb_private::operator<(), and lldb_private::operator==().
|
inline |
Definition at line 27 of file StackID.h.
References m_pc.
Referenced by lldb_private::operator==(), and lldb_private::StackFrame::UpdatePreviousFrameFromCurrentFrame().
|
inline |
Definition at line 35 of file StackID.h.
References m_symbol_scope.
Referenced by lldb_private::operator<(), and lldb_private::operator==().
|
inline |
Definition at line 47 of file StackID.h.
References LLDB_INVALID_ADDRESS, m_cfa, and m_pc.
Referenced by lldb_private::ThreadPlanStepRange::CompareCurrentFrameToStartFrame(), lldb_private::StackFrameList::GetFrameWithStackID(), lldb_private::Thread::GetFrameWithStackID(), and lldb_private::Process::RunThreadPlan().
|
protected |
Definition at line 32 of file StackID.cpp.
References lldb_private::Process::FixDataAddress(), m_cfa, and m_cfa_with_metadata.
|
protected |
Definition at line 28 of file StackID.cpp.
References lldb_private::Process::FixCodeAddress(), m_pc, and pc.
|
inline |
Definition at line 37 of file StackID.h.
References m_symbol_scope.
|
friend |
|
protected |
|
protected |
The cfa with metadata (i.e. prior to Process::FixAddress).
Definition at line 70 of file StackID.h.
Referenced by GetCallFrameAddressWithMetadata(), SetCFA(), and StackID().
|
protected |
The pc value for the function/symbol for this frame.
This will only get used if the symbol scope is nullptr (the code where we are stopped is not represented by any function or symbol in any shared library).
Definition at line 62 of file StackID.h.
Referenced by Clear(), Dump(), GetPC(), IsValid(), SetPC(), and StackID().
|
protected |
If nullptr, there is no block or symbol for this frame.
If not nullptr, this will either be the scope for the lexical block for the frame, or the scope for the symbol. Symbol context scopes are always be unique pointers since the are part of the Block and Symbol objects and can easily be used to tell if a stack ID is the same as another.
Definition at line 77 of file StackID.h.
Referenced by Clear(), Dump(), GetSymbolContextScope(), SetSymbolContextScope(), and StackID().