// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. #include "vm/disassembler.h" #include "vm/assembler.h" #include "vm/globals.h" #include "vm/os.h" namespace dart { void DisassembleToStdout::ConsumeInstruction(char* hex_buffer, intptr_t hex_size, char* human_buffer, intptr_t human_size, uword pc) { static const int kHexColumnWidth = 18; uint8_t* pc_ptr = reinterpret_cast(pc); OS::Print("%p %s", pc_ptr, hex_buffer); int hex_length = strlen(hex_buffer); if (hex_length < kHexColumnWidth) { for (int i = kHexColumnWidth - hex_length; i > 0; i--) { OS::Print(" "); } } OS::Print("%s", human_buffer); OS::Print("\n"); } void DisassembleToStdout::Print(const char* format, ...) { va_list args; va_start(args, format); OS::VFPrint(stdout, format, args); va_end(args); } } // namespace dart