summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--oatdump/oatdump.cc14
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_);