LLDB mainline
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
lldb_private::Unwind Class Referenceabstract

#include <Unwind.h>

Inheritance diagram for lldb_private::Unwind:
Inheritance graph
[legend]

Public Member Functions

virtual ~Unwind ()=default
 
void Clear ()
 
uint32_t GetFrameCount ()
 
uint32_t GetFramesUpTo (uint32_t end_idx)
 
bool GetFrameInfoAtIndex (uint32_t frame_idx, lldb::addr_t &cfa, lldb::addr_t &pc, bool &behaves_like_zeroth_frame)
 
lldb::RegisterContextSP CreateRegisterContextForFrame (StackFrame *frame)
 
ThreadGetThread ()
 

Protected Member Functions

 Unwind (Thread &thread)
 
virtual void DoClear ()=0
 
virtual uint32_t DoGetFrameCount ()=0
 
virtual bool DoGetFrameInfoAtIndex (uint32_t frame_idx, lldb::addr_t &cfa, lldb::addr_t &pc, bool &behaves_like_zeroth_frame)=0
 
virtual lldb::RegisterContextSP DoCreateRegisterContextForFrame (StackFrame *frame)=0
 

Protected Attributes

Threadm_thread
 
std::recursive_mutex m_unwind_mutex
 

Private Member Functions

 Unwind (const Unwind &)=delete
 
const Unwindoperator= (const Unwind &)=delete
 

Detailed Description

Definition at line 18 of file Unwind.h.

Constructor & Destructor Documentation

◆ Unwind() [1/2]

lldb_private::Unwind::Unwind ( Thread thread)
inlineprotected

Definition at line 21 of file Unwind.h.

◆ ~Unwind()

virtual lldb_private::Unwind::~Unwind ( )
virtualdefault

◆ Unwind() [2/2]

lldb_private::Unwind::Unwind ( const Unwind )
privatedelete

Member Function Documentation

◆ Clear()

void lldb_private::Unwind::Clear ( )
inline

Definition at line 26 of file Unwind.h.

References DoClear(), and m_unwind_mutex.

Referenced by lldb_private::Thread::ClearStackFrames().

◆ CreateRegisterContextForFrame()

lldb::RegisterContextSP lldb_private::Unwind::CreateRegisterContextForFrame ( StackFrame frame)
inline

◆ DoClear()

virtual void lldb_private::Unwind::DoClear ( )
protectedpure virtual

Implemented in lldb_private::UnwindLLDB, and lldb_private::HistoryUnwind.

Referenced by Clear().

◆ DoCreateRegisterContextForFrame()

virtual lldb::RegisterContextSP lldb_private::Unwind::DoCreateRegisterContextForFrame ( StackFrame frame)
protectedpure virtual

◆ DoGetFrameCount()

virtual uint32_t lldb_private::Unwind::DoGetFrameCount ( )
protectedpure virtual

◆ DoGetFrameInfoAtIndex()

virtual bool lldb_private::Unwind::DoGetFrameInfoAtIndex ( uint32_t  frame_idx,
lldb::addr_t cfa,
lldb::addr_t pc,
bool &  behaves_like_zeroth_frame 
)
protectedpure virtual

◆ GetFrameCount()

uint32_t lldb_private::Unwind::GetFrameCount ( )
inline

Definition at line 31 of file Unwind.h.

References DoGetFrameCount(), and m_unwind_mutex.

◆ GetFrameInfoAtIndex()

bool lldb_private::Unwind::GetFrameInfoAtIndex ( uint32_t  frame_idx,
lldb::addr_t cfa,
lldb::addr_t pc,
bool &  behaves_like_zeroth_frame 
)
inline

Definition at line 50 of file Unwind.h.

References DoGetFrameInfoAtIndex(), m_unwind_mutex, and pc.

Referenced by lldb_private::StackFrameList::FetchFramesUpTo().

◆ GetFramesUpTo()

uint32_t lldb_private::Unwind::GetFramesUpTo ( uint32_t  end_idx)
inline

Definition at line 36 of file Unwind.h.

References DoGetFrameInfoAtIndex(), and pc.

Referenced by lldb_private::StackFrameList::FetchOnlyConcreteFramesUpTo().

◆ GetThread()

Thread & lldb_private::Unwind::GetThread ( )
inline

Definition at line 61 of file Unwind.h.

References m_thread.

◆ operator=()

const Unwind & lldb_private::Unwind::operator= ( const Unwind )
privatedelete

Member Data Documentation

◆ m_thread

Thread& lldb_private::Unwind::m_thread
protected

◆ m_unwind_mutex

std::recursive_mutex lldb_private::Unwind::m_unwind_mutex
protected

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