27 : m_opaque_sp(rhs.m_opaque_sp) {
44 return this->
operator bool();
46SBInstructionList::operator bool()
const {
49 return m_opaque_sp.get() !=
nullptr;
67 m_opaque_sp->GetInstructionList().GetInstructionAtIndex(idx));
73 bool canSetBreakpoint) {
76 size_t num_instructions =
GetSize();
79 size_t lower_index = 0;
80 size_t upper_index = 0;
81 size_t instructions_to_skip = 0;
82 for (i = 0; i < num_instructions; ++i) {
90 for (i = lower_index; i <= upper_index; ++i) {
93 ++instructions_to_skip;
95 return upper_index - lower_index - instructions_to_skip;
130 if (!out_sp || !out_sp->IsValid())
144 size_t num_instructions =
GetSize();
145 if (num_instructions) {
148 const uint32_t max_opcode_byte_size =
149 m_opaque_sp->GetInstructionList().GetMaxOpcocdeByteSize();
154 for (
size_t i = 0; i < num_instructions; ++i) {
156 m_opaque_sp->GetInstructionList().GetInstructionAtIndex(i).get();
164 module_sp->ResolveSymbolContextForAddress(
165 addr, eSymbolContextEverything, sc);
168 inst->
Dump(&sref, max_opcode_byte_size,
true,
false,
169 false,
nullptr, &sc, &prev_sc,
184 for (
size_t i = 0; i < len; ++i) {
#define LLDB_INSTRUMENT_VA(...)
bool DumpEmulationForAllInstructions(const char *triple)
bool GetDescription(lldb::SBStream &description)
lldb::SBInstruction GetInstructionAtIndex(uint32_t idx)
size_t GetInstructionsCount(const SBAddress &start, const SBAddress &end, bool canSetBreakpoint=false)
void SetDisassembler(const lldb::DisassemblerSP &opaque_sp)
void AppendInstruction(lldb::SBInstruction inst)
const SBInstructionList & operator=(const SBInstructionList &rhs)
lldb::DisassemblerSP m_opaque_sp
void SetOpaque(const lldb::DisassemblerSP &disasm_sp, const lldb::InstructionSP &inst_sp)
lldb_private::Stream & ref()
A section + offset based address class.
lldb::ModuleSP GetModule() const
Get accessor for the module for this address.
const Address & GetAddress() const
virtual void Dump(Stream *s, uint32_t max_opcode_byte_size, bool show_address, bool show_bytes, bool show_control_flow_kind, const ExecutionContext *exe_ctx, const SymbolContext *sym_ctx, const SymbolContext *prev_sym_ctx, const FormatEntity::Entry *disassembly_addr_format, size_t max_address_text_size)
Dump the text representation of this Instruction to a Stream.
A stream class that can stream formatted output to a file.
size_t EOL()
Output and End of Line character to the stream.
Defines a symbol context baton that can be handed other debug core functions.
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::Disassembler > DisassemblerSP
std::shared_ptr< lldb_private::File > FileSP
std::shared_ptr< lldb_private::Module > ModuleSP