diff options
Diffstat (limited to 'runtime/native/dalvik_system_VMDebug.cc')
| -rw-r--r-- | runtime/native/dalvik_system_VMDebug.cc | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/runtime/native/dalvik_system_VMDebug.cc b/runtime/native/dalvik_system_VMDebug.cc index adf35b6f01..67b2e1c503 100644 --- a/runtime/native/dalvik_system_VMDebug.cc +++ b/runtime/native/dalvik_system_VMDebug.cc @@ -177,8 +177,22 @@ static void VMDebug_resetInstructionCount(JNIEnv* env, jclass) { } static void VMDebug_printLoadedClasses(JNIEnv* env, jclass, jint flags) { + class DumpClassVisitor : public ClassVisitor { + public: + explicit DumpClassVisitor(int dump_flags) : flags_(dump_flags) {} + + bool operator()(ObjPtr<mirror::Class> klass) OVERRIDE REQUIRES_SHARED(Locks::mutator_lock_) { + klass->DumpClass(LOG_STREAM(ERROR), flags_); + return true; + } + + private: + const int flags_; + }; + DumpClassVisitor visitor(flags); + ScopedFastNativeObjectAccess soa(env); - return Runtime::Current()->GetClassLinker()->DumpAllClasses(flags); + return Runtime::Current()->GetClassLinker()->VisitClasses(&visitor); } static jint VMDebug_getLoadedClassCount(JNIEnv* env, jclass) { |