Implement as much of VMDebug as we can reasonably do right now.

No hprof and no method tracing, but everything else.

Change-Id: Ifccd1f08e31f34b947c30f1211db788aae674d81
diff --git a/src/jni_internal.cc b/src/jni_internal.cc
index 6c25f6e..f9fcb78 100644
--- a/src/jni_internal.cc
+++ b/src/jni_internal.cc
@@ -2537,6 +2537,11 @@
 JNIEnvExt::~JNIEnvExt() {
 }
 
+void JNIEnvExt::DumpReferenceTables() {
+  locals.Dump();
+  monitors.Dump();
+}
+
 // JNI Invocation interface.
 
 extern "C" jint JNI_CreateJavaVM(JavaVM** p_vm, void** p_env, void* vm_args) {
@@ -2672,6 +2677,21 @@
   delete libraries;
 }
 
+void JavaVMExt::DumpReferenceTables() {
+  {
+    MutexLock mu(globals_lock);
+    globals.Dump();
+  }
+  {
+    MutexLock mu(weak_globals_lock);
+    weak_globals.Dump();
+  }
+  {
+    MutexLock mu(pins_lock);
+    pin_table.Dump();
+  }
+}
+
 bool JavaVMExt::LoadNativeLibrary(const std::string& path, ClassLoader* class_loader, std::string& detail) {
   detail.clear();