If we have a Class object in the "monitors held:" output, show which class.
Bug: 2187020
diff --git a/vm/Thread.c b/vm/Thread.c
index 55e27f6..71f6324 100644
--- a/vm/Thread.c
+++ b/vm/Thread.c
@@ -3322,8 +3322,16 @@
else
dvmPrintDebugMessage(target, " | monitors held: <none>\n");
while (lod != NULL) {
- dvmPrintDebugMessage(target, " > %p[%d] (%s)\n",
- lod->obj, lod->recursionCount, lod->obj->clazz->descriptor);
+ Object* obj = lod->obj;
+ if (obj->clazz == gDvm.classJavaLangClass) {
+ ClassObject* clazz = (ClassObject*) obj;
+ dvmPrintDebugMessage(target, " > %p[%d] (%s object for class %s)\n",
+ obj, lod->recursionCount, obj->clazz->descriptor,
+ clazz->descriptor);
+ } else {
+ dvmPrintDebugMessage(target, " > %p[%d] (%s)\n",
+ obj, lod->recursionCount, obj->clazz->descriptor);
+ }
lod = lod->next;
}
}