5#ifndef RUNTIME_VM_COMPILER_ASSEMBLER_DISASSEMBLER_H_
6#define RUNTIME_VM_COMPILER_ASSEMBLER_DISASSEMBLER_H_
13#if !defined(DART_PRECOMPILED_RUNTIME)
72 virtual void ConsumeInstruction(
char* hex_buffer,
88#if !defined(PRODUCT) || defined(FORCE_INCLUDE_DISASSEMBLER)
100 virtual void ConsumeInstruction(
char* hex_buffer,
128 const CodeComments* comments =
nullptr);
133 Disassemble(
start,
end, formatter, Code::Handle());
139 const CodeComments* comments) {
140 Disassemble(
start,
end, formatter, Code::Handle(), comments);
144#if !defined(PRODUCT) || defined(FORCE_INCLUDE_DISASSEMBLER)
147 if (!code.IsNull()) {
148 Disassemble(
start,
end, &stdout_formatter, code, &code.comments());
150 Disassemble(
start,
end, &stdout_formatter, code);
158#if !defined(PRODUCT) || defined(FORCE_INCLUDE_DISASSEMBLER)
161 Disassemble(
start,
end, &stdout_formatter);
171#if !defined(PRODUCT) || defined(FORCE_INCLUDE_DISASSEMBLER)
174 Disassemble(
start,
end, &memory_formatter);
197 static void DisassembleStub(
const char*
name,
const Code& code);
200 static void DisassembleCodeHelper(
const char* function_fullname,
201 const char* function_info,
205 static constexpr int kHexadecimalBufferSize = 32;
206 static constexpr int kUserReadableBufferSize = 256;
static uint32_t buffer_size(uint32_t offset, uint32_t maxAlignment)
~DisassembleToJSONStream()
DisassembleToJSONStream(const JSONArray &jsarr)
DisassembleToMemory(char *buffer, uintptr_t length)
virtual void ConsumeInstruction(char *hex_buffer, intptr_t hex_size, char *human_buffer, intptr_t human_size, Object *object, uword pc)
static void Disassemble(uword start, uword end, DisassemblyFormatter *formatter)
static void Disassemble(uword start, uword end, const Code &code)
static void Disassemble(uword start, uword end, char *buffer, uintptr_t buffer_size)
static void Disassemble(uword start, uword end, DisassemblyFormatter *formatter, const CodeComments *comments)
static void Disassemble(uword start, uword end)
static void DecodeInstruction(char *hex_buffer, intptr_t hex_size, char *human_buffer, intptr_t human_size, int *out_instr_len, const Code &code, Object **object, uword pc)
static const uint8_t buffer[]
uint32_t uint32_t * format
Dart_NativeFunction function