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

#include <HistoryUnwind.h>

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

Public Member Functions

 HistoryUnwind (Thread &thread, std::vector< lldb::addr_t > pcs, bool pcs_are_call_addresses=false)
 
 ~HistoryUnwind () override
 
- Public Member Functions inherited from lldb_private::Unwind
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

void DoClear () override
 
lldb::RegisterContextSP DoCreateRegisterContextForFrame (StackFrame *frame) override
 
bool DoGetFrameInfoAtIndex (uint32_t frame_idx, lldb::addr_t &cfa, lldb::addr_t &pc, bool &behaves_like_zeroth_frame) override
 
uint32_t DoGetFrameCount () override
 
- Protected Member Functions inherited from lldb_private::Unwind
 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
 

Private Attributes

std::vector< lldb::addr_tm_pcs
 
bool m_pcs_are_call_addresses
 This boolean indicates that the PCs in the non-0 frames are call addresses and not return addresses.
 

Additional Inherited Members

- Protected Attributes inherited from lldb_private::Unwind
Threadm_thread
 
std::recursive_mutex m_unwind_mutex
 

Detailed Description

Definition at line 19 of file HistoryUnwind.h.

Constructor & Destructor Documentation

◆ HistoryUnwind()

HistoryUnwind::HistoryUnwind ( Thread thread,
std::vector< lldb::addr_t pcs,
bool  pcs_are_call_addresses = false 
)

Definition at line 26 of file HistoryUnwind.cpp.

◆ ~HistoryUnwind()

HistoryUnwind::~HistoryUnwind ( )
overridedefault

Member Function Documentation

◆ DoClear()

void HistoryUnwind::DoClear ( )
overrideprotectedvirtual

Implements lldb_private::Unwind.

Definition at line 35 of file HistoryUnwind.cpp.

References m_pcs, and lldb_private::Unwind::m_unwind_mutex.

◆ DoCreateRegisterContextForFrame()

lldb::RegisterContextSP HistoryUnwind::DoCreateRegisterContextForFrame ( StackFrame frame)
overrideprotectedvirtual

◆ DoGetFrameCount()

uint32_t HistoryUnwind::DoGetFrameCount ( )
overrideprotectedvirtual

Implements lldb_private::Unwind.

Definition at line 73 of file HistoryUnwind.cpp.

References m_pcs.

◆ DoGetFrameInfoAtIndex()

bool HistoryUnwind::DoGetFrameInfoAtIndex ( uint32_t  frame_idx,
lldb::addr_t cfa,
lldb::addr_t pc,
bool &  behaves_like_zeroth_frame 
)
overrideprotectedvirtual

Member Data Documentation

◆ m_pcs

std::vector<lldb::addr_t> lldb_private::HistoryUnwind::m_pcs
private

Definition at line 38 of file HistoryUnwind.h.

Referenced by DoClear(), DoGetFrameCount(), and DoGetFrameInfoAtIndex().

◆ m_pcs_are_call_addresses

bool lldb_private::HistoryUnwind::m_pcs_are_call_addresses
private

This boolean indicates that the PCs in the non-0 frames are call addresses and not return addresses.

Definition at line 41 of file HistoryUnwind.h.

Referenced by DoGetFrameInfoAtIndex().


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