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

#include <Disassembler.h>

Public Member Functions

 InstructionList ()
 ~InstructionList ()
size_t GetSize () const
uint32_t GetMaxOpcocdeByteSize () const
lldb::InstructionSP GetInstructionAtIndex (size_t idx) const
lldb::InstructionSP GetInstructionAtAddress (const Address &addr)
 Get the instruction at the given address.
uint32_t GetIndexOfNextBranchInstruction (uint32_t start, bool ignore_calls, bool *found_calls) const
 Get the index of the next branch instruction.
uint32_t GetIndexOfInstructionAtLoadAddress (lldb::addr_t load_addr, Target &target)
uint32_t GetIndexOfInstructionAtAddress (const Address &addr)
void Clear ()
void Append (lldb::InstructionSP &inst_sp)
void Dump (Stream *s, bool show_address, bool show_bytes, bool show_control_flow_kind, const ExecutionContext *exe_ctx)

Private Types

typedef std::vector< lldb::InstructionSPcollection
typedef collection::iterator iterator
typedef collection::const_iterator const_iterator

Private Attributes

collection m_instructions

Detailed Description

Definition at line 287 of file Disassembler.h.

Member Typedef Documentation

◆ collection

Definition at line 346 of file Disassembler.h.

◆ const_iterator

typedef collection::const_iterator lldb_private::InstructionList::const_iterator

Definition at line 348 of file Disassembler.h.

◆ iterator

typedef collection::iterator lldb_private::InstructionList::iterator

Definition at line 347 of file Disassembler.h.

Constructor & Destructor Documentation

◆ InstructionList()

InstructionList::InstructionList ( )

Definition at line 967 of file Disassembler.cpp.

◆ ~InstructionList()

InstructionList::~InstructionList ( )

Member Function Documentation

◆ Append()

void InstructionList::Append ( lldb::InstructionSP inst_sp)

◆ Clear()

void InstructionList::Clear ( )

◆ Dump()

void InstructionList::Dump ( Stream s,
bool  show_address,
bool  show_bytes,
bool  show_control_flow_kind,
const ExecutionContext exe_ctx 

◆ GetIndexOfInstructionAtAddress()

uint32_t InstructionList::GetIndexOfInstructionAtAddress ( const Address addr)

◆ GetIndexOfInstructionAtLoadAddress()

uint32_t InstructionList::GetIndexOfInstructionAtLoadAddress ( lldb::addr_t  load_addr,
Target target 

◆ GetIndexOfNextBranchInstruction()

uint32_t InstructionList::GetIndexOfNextBranchInstruction ( uint32_t  start,
bool  ignore_calls,
bool *  found_calls 
) const

Get the index of the next branch instruction.

Given a list of instructions, find the next branch instruction in the list by returning an index.

[in]startThe instruction index of the first instruction to check.
[in]ignore_callsIt true, then fine the first branch instruction that isn't a function call (a branch that calls and returns to the next instruction). If false, find the instruction index of any branch in the list.
[out]found_callsIf non-null, this will be set to true if any calls were found in extending the range.
The instruction index of the first branch that is at or past start. Returns UINT32_MAX if no matching branches are found.

Definition at line 1033 of file Disassembler.cpp.

References m_instructions, and UINT32_MAX.

Referenced by lldb_private::Process::AdvanceAddressToNextBranchInstruction(), and lldb_private::ThreadPlanStepRange::SetNextBranchBreakpoint().

◆ GetInstructionAtAddress()

InstructionSP InstructionList::GetInstructionAtAddress ( const Address addr)

Get the instruction at the given address.

A valid InstructionSP if the address could be found, or null otherwise.

Definition at line 992 of file Disassembler.cpp.

References GetIndexOfInstructionAtAddress(), GetInstructionAtIndex(), and UINT32_MAX.

◆ GetInstructionAtIndex()

InstructionSP InstructionList::GetInstructionAtIndex ( size_t  idx) const

◆ GetMaxOpcocdeByteSize()

uint32_t InstructionList::GetMaxOpcocdeByteSize ( ) const

◆ GetSize()

size_t InstructionList::GetSize ( ) const

Member Data Documentation

◆ m_instructions

collection lldb_private::InstructionList::m_instructions

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