LLDB  mainline
Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Friends | List of all members
lldb_private::UnwindLLDB Class Reference

#include <UnwindLLDB.h>

Inheritance diagram for lldb_private::UnwindLLDB:
Inheritance graph
[legend]
Collaboration diagram for lldb_private::UnwindLLDB:
Collaboration graph
[legend]

Classes

struct  RegisterLocation
 

Public Types

enum  RegisterSearchResult { eRegisterFound = 0, eRegisterNotFound, eRegisterIsVolatile }
 

Public Member Functions

 UnwindLLDB (lldb_private::Thread &thread)
 
 ~UnwindLLDB () override=default
 
- Public Member Functions inherited from lldb_private::Unwind
virtual ~Unwind ()
 
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)
 
lldb::RegisterContextSP CreateRegisterContextForFrame (StackFrame *frame)
 
ThreadGetThread ()
 

Protected Types

typedef std::shared_ptr< RegisterContextLLDBRegisterContextLLDBSP
 

Protected Member Functions

void DoClear () override
 
uint32_t DoGetFrameCount () override
 
bool DoGetFrameInfoAtIndex (uint32_t frame_idx, lldb::addr_t &cfa, lldb::addr_t &start_pc) override
 
lldb::RegisterContextSP DoCreateRegisterContextForFrame (lldb_private::StackFrame *frame) override
 
RegisterContextLLDBSP GetRegisterContextForFrameNum (uint32_t frame_num)
 
bool SearchForSavedLocationForRegister (uint32_t lldb_regnum, lldb_private::UnwindLLDB::RegisterLocation &regloc, uint32_t starting_frame_num, bool pc_register)
 
const std::vector< ConstString > & GetUserSpecifiedTrapHandlerFunctionNames ()
 Provide the list of user-specified trap handler functions. More...
 
- Protected Member Functions inherited from lldb_private::Unwind
 Unwind (Thread &thread)
 

Friends

class lldb_private::RegisterContextLLDB
 

Additional Inherited Members

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

Detailed Description

Definition at line 26 of file UnwindLLDB.h.

Member Typedef Documentation

◆ RegisterContextLLDBSP

Definition at line 81 of file UnwindLLDB.h.

Member Enumeration Documentation

◆ RegisterSearchResult

Enumerator
eRegisterFound 
eRegisterNotFound 
eRegisterIsVolatile 

Definition at line 32 of file UnwindLLDB.h.

Constructor & Destructor Documentation

◆ UnwindLLDB()

UnwindLLDB::UnwindLLDB ( lldb_private::Thread thread)

◆ ~UnwindLLDB()

lldb_private::UnwindLLDB::~UnwindLLDB ( )
overridedefault

Member Function Documentation

◆ DoClear()

void lldb_private::UnwindLLDB::DoClear ( )
inlineoverrideprotectedvirtual

◆ DoCreateRegisterContextForFrame()

lldb::RegisterContextSP UnwindLLDB::DoCreateRegisterContextForFrame ( lldb_private::StackFrame frame)
overrideprotectedvirtual

◆ DoGetFrameCount()

uint32_t UnwindLLDB::DoGetFrameCount ( )
overrideprotectedvirtual

◆ DoGetFrameInfoAtIndex()

bool UnwindLLDB::DoGetFrameInfoAtIndex ( uint32_t  frame_idx,
lldb::addr_t cfa,
lldb::addr_t start_pc 
)
overrideprotectedvirtual

Implements lldb_private::Unwind.

Definition at line 398 of file UnwindLLDB.cpp.

References lldb_private::Thread::GetProcess(), and lldb_private::Unwind::m_thread.

Referenced by DoClear().

◆ GetRegisterContextForFrameNum()

UnwindLLDB::RegisterContextLLDBSP UnwindLLDB::GetRegisterContextForFrameNum ( uint32_t  frame_num)
protected

Definition at line 449 of file UnwindLLDB.cpp.

Referenced by lldb_private::RegisterContextLLDB::GetCFA().

◆ GetUserSpecifiedTrapHandlerFunctionNames()

const std::vector<ConstString>& lldb_private::UnwindLLDB::GetUserSpecifiedTrapHandlerFunctionNames ( )
inlineprotected

Provide the list of user-specified trap handler functions.

The Platform is one source of trap handler function names; that may be augmented via a setting. The setting needs to be converted into an array of ConstStrings before it can be used - we only want to do that once per thread so it's here in the UnwindLLDB object.

Returns
Vector of ConstStrings of trap handler function names. May be empty.

Definition at line 106 of file UnwindLLDB.h.

References LLDB_INVALID_ADDRESS.

Referenced by lldb_private::RegisterContextLLDB::IsTrapHandlerFrame().

◆ SearchForSavedLocationForRegister()

bool UnwindLLDB::SearchForSavedLocationForRegister ( uint32_t  lldb_regnum,
lldb_private::UnwindLLDB::RegisterLocation regloc,
uint32_t  starting_frame_num,
bool  pc_register 
)
protected

Friends And Related Function Documentation

◆ lldb_private::RegisterContextLLDB

friend class lldb_private::RegisterContextLLDB
friend

Definition at line 39 of file UnwindLLDB.h.


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