diff options
| -rw-r--r-- | oatdump/oatdump.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/oatdump/oatdump.cc b/oatdump/oatdump.cc index 69dc23ae3d..a93ad37e61 100644 --- a/oatdump/oatdump.cc +++ b/oatdump/oatdump.cc @@ -2109,7 +2109,7 @@ class ImageDumper { if (obj_class->IsArrayClass()) { os << StringPrintf("%p: %s length:%d\n", obj, obj_class->PrettyDescriptor().c_str(), obj->AsArray()->GetLength()); - } else if (obj->IsClass()) { + } else if (obj_class->IsClassClass()) { ObjPtr<mirror::Class> klass = obj->AsClass(); os << StringPrintf("%p: java.lang.Class \"%s\" (", obj, @@ -2146,7 +2146,7 @@ class ImageDumper { (value == nullptr) ? obj_class->GetComponentType() : value->GetClass(); PrettyObjectValue(os, value_class, value); } - } else if (obj->IsClass()) { + } else if (obj_class->IsClassClass()) { ObjPtr<mirror::Class> klass = obj->AsClass(); if (kBitstringSubtypeCheckEnabled) { @@ -2155,6 +2155,16 @@ class ImageDumper { os << "\n"; } + if (klass->ShouldHaveEmbeddedVTable()) { + os << "EMBEDDED VTABLE:\n"; + ScopedIndentation indent2(&vios_); + const PointerSize pointer_size = image_header_.GetPointerSize(); + for (size_t i = 0, length = klass->GetEmbeddedVTableLength(); i != length; ++i) { + os << i << ": " + << ArtMethod::PrettyMethod(klass->GetEmbeddedVTableEntry(i, pointer_size)) << '\n'; + } + } + if (klass->NumStaticFields() != 0) { os << "STATICS:\n"; ScopedIndentation indent2(&vios_); |