LLDB mainline
lldb::SBInstruction Class Reference

#include <SBInstruction.h>

Public Member Functions

 SBInstruction ()
 SBInstruction (const SBInstruction &rhs)
const SBInstructionoperator= (const SBInstruction &rhs)
 ~SBInstruction ()
 operator bool () const
bool IsValid ()
SBAddress GetAddress ()
const char * GetMnemonic (lldb::SBTarget target)
const char * GetOperands (lldb::SBTarget target)
const char * GetComment (lldb::SBTarget target)
lldb::InstructionControlFlowKind GetControlFlowKind (lldb::SBTarget target)
lldb::SBData GetData (lldb::SBTarget target)
size_t GetByteSize ()
bool DoesBranch ()
bool HasDelaySlot ()
bool CanSetBreakpoint ()
void Print (FILE *out)
void Print (SBFile out)
void Print (FileSP BORROWED)
bool GetDescription (lldb::SBStream &description)
bool EmulateWithFrame (lldb::SBFrame &frame, uint32_t evaluate_options)
bool DumpEmulation (const char *triple)
bool TestEmulation (lldb::SBStream &output_stream, const char *test_file)
lldb::SBStructuredData GetVariableAnnotations ()
 Get variable annotations for this instruction as structured data.

Protected Member Functions

 SBInstruction (const lldb::DisassemblerSP &disasm_sp, const lldb::InstructionSP &inst_sp)
void SetOpaque (const lldb::DisassemblerSP &disasm_sp, const lldb::InstructionSP &inst_sp)
lldb::InstructionSP GetOpaque ()

Private Attributes

std::shared_ptr< InstructionImplm_opaque_sp

Friends

class SBInstructionList

Detailed Description

Definition at line 24 of file SBInstruction.h.

Constructor & Destructor Documentation

◆ SBInstruction() [1/3]

SBInstruction::SBInstruction ( )

Definition at line 70 of file SBInstruction.cpp.

References LLDB_INSTRUMENT_VA.

Referenced by operator=(), SBInstruction(), and SBInstructionList.

◆ SBInstruction() [2/3]

SBInstruction::SBInstruction ( const SBInstruction & rhs)

Definition at line 76 of file SBInstruction.cpp.

References LLDB_INSTRUMENT_VA, m_opaque_sp, and SBInstruction().

◆ ~SBInstruction()

◆ SBInstruction() [3/3]

SBInstruction::SBInstruction ( const lldb::DisassemblerSP & disasm_sp,
const lldb::InstructionSP & inst_sp )
protected

Definition at line 72 of file SBInstruction.cpp.

References m_opaque_sp.

Member Function Documentation

◆ CanSetBreakpoint()

bool SBInstruction::CanSetBreakpoint ( )

◆ DoesBranch()

bool SBInstruction::DoesBranch ( )

Definition at line 211 of file SBInstruction.cpp.

References GetOpaque(), and LLDB_INSTRUMENT_VA.

Referenced by ~SBInstruction().

◆ DumpEmulation()

bool SBInstruction::DumpEmulation ( const char * triple)

Definition at line 331 of file SBInstruction.cpp.

References GetOpaque(), and LLDB_INSTRUMENT_VA.

Referenced by ~SBInstruction().

◆ EmulateWithFrame()

◆ GetAddress()

SBAddress SBInstruction::GetAddress ( )

◆ GetByteSize()

size_t SBInstruction::GetByteSize ( )

Definition at line 188 of file SBInstruction.cpp.

References GetOpaque(), and LLDB_INSTRUMENT_VA.

Referenced by ~SBInstruction().

◆ GetComment()

◆ GetControlFlowKind()

◆ GetData()

SBData SBInstruction::GetData ( lldb::SBTarget target)

Definition at line 197 of file SBInstruction.cpp.

References GetOpaque(), LLDB_INSTRUMENT_VA, and lldb::SBData::SetOpaque().

Referenced by ~SBInstruction().

◆ GetDescription()

bool SBInstruction::GetDescription ( lldb::SBStream & description)

◆ GetMnemonic()

◆ GetOpaque()

◆ GetOperands()

◆ GetVariableAnnotations()

SBStructuredData SBInstruction::GetVariableAnnotations ( )

Get variable annotations for this instruction as structured data.

Returns an array of dictionaries, each containing:

  • "variable_name": string name of the variable
  • "location_description": string description of where variable is stored ("RDI", "R15", "undef", etc.)
  • "start_address": unsigned integer address where this annotation becomes valid
  • "end_address": unsigned integer address where this annotation becomes invalid
  • "register_kind": unsigned integer indicating the register numbering scheme
  • "decl_file": string path to the file where variable is declared
  • "decl_line": unsigned integer line number where variable is declared
  • "type_name": string type name of the variable

Definition at line 355 of file SBInstruction.cpp.

References LLDB_INSTRUMENT_VA, lldb::SBStructuredData::m_impl_up, and m_opaque_sp.

Referenced by ~SBInstruction().

◆ HasDelaySlot()

bool SBInstruction::HasDelaySlot ( )

Definition at line 220 of file SBInstruction.cpp.

References GetOpaque(), and LLDB_INSTRUMENT_VA.

Referenced by ~SBInstruction().

◆ IsValid()

bool SBInstruction::IsValid ( )

Definition at line 91 of file SBInstruction.cpp.

References LLDB_INSTRUMENT_VA.

Referenced by ~SBInstruction().

◆ operator bool()

SBInstruction::operator bool ( ) const
explicit

Definition at line 95 of file SBInstruction.cpp.

References LLDB_INSTRUMENT_VA, and m_opaque_sp.

◆ operator=()

const SBInstruction & SBInstruction::operator= ( const SBInstruction & rhs)

Definition at line 81 of file SBInstruction.cpp.

References LLDB_INSTRUMENT_VA, m_opaque_sp, and SBInstruction().

◆ Print() [1/3]

void SBInstruction::Print ( FILE * out)

◆ Print() [2/3]

void SBInstruction::Print ( FileSP BORROWED)

◆ Print() [3/3]

void SBInstruction::Print ( SBFile out)

Definition at line 279 of file SBInstruction.cpp.

References LLDB_INSTRUMENT_VA, lldb::SBFile::m_opaque_sp, and Print().

◆ SetOpaque()

void SBInstruction::SetOpaque ( const lldb::DisassemblerSP & disasm_sp,
const lldb::InstructionSP & inst_sp )
protected

◆ TestEmulation()

bool SBInstruction::TestEmulation ( lldb::SBStream & output_stream,
const char * test_file )

Definition at line 341 of file SBInstruction.cpp.

References GetOpaque(), LLDB_INSTRUMENT_VA, m_opaque_sp, lldb::SBStream::ref(), and SetOpaque().

Referenced by ~SBInstruction().

◆ SBInstructionList

friend class SBInstructionList
friend

Definition at line 93 of file SBInstruction.h.

References GetOpaque(), SBInstruction(), SBInstructionList, and SetOpaque().

Referenced by SBInstructionList.

Member Data Documentation

◆ m_opaque_sp

std::shared_ptr<InstructionImpl> lldb::SBInstruction::m_opaque_sp
private

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