diff --git a/vm/debug.cpp b/vm/debug.cpp index ff22770ced..0349e3ff25 100755 --- a/vm/debug.cpp +++ b/vm/debug.cpp @@ -122,8 +122,8 @@ void factor_vm::print_nested_obj(cell obj, fixnum nesting) std::cout << " ]"; break; default: - std::cout << "#(obj).type() << " @ "; - std::cout << std::hex << obj << std::dec << ">"; + std::cout << "#<" << type_name(tagged(obj).type()) << " "; + std::cout << (void*)obj << ">"; break; } } diff --git a/vm/layouts.hpp b/vm/layouts.hpp index 300b819b1f..ebffa644b5 100644 --- a/vm/layouts.hpp +++ b/vm/layouts.hpp @@ -56,6 +56,44 @@ static const cell data_alignment = 16; #define TYPE_COUNT 14 +static inline const char *type_name(cell type) +{ + switch (type) + { + case FIXNUM_TYPE: + return "fixnum"; + case F_TYPE: + return "f"; + case ARRAY_TYPE: + return "array"; + case FLOAT_TYPE: + return "float"; + case QUOTATION_TYPE: + return "quotation"; + case BIGNUM_TYPE: + return "bignum"; + case ALIEN_TYPE: + return "alien"; + case TUPLE_TYPE: + return "tuple"; + case WRAPPER_TYPE: + return "wrapper"; + case BYTE_ARRAY_TYPE: + return "byte-array"; + case CALLSTACK_TYPE: + return "callstack"; + case STRING_TYPE: + return "string"; + case WORD_TYPE: + return "word"; + case DLL_TYPE: + return "dll"; + default: + assert(false); + return ""; + } +} + enum code_block_type { code_block_unoptimized,