More SIGQUIT detail, earlier exit in AttachCurrentThread, handling recursive aborts, and reporting debug/optimized builds.

Change-Id: I932b49a8e92a91e340b4d98b8771dd4a41b61229
diff --git a/src/class_linker.cc b/src/class_linker.cc
index 9d8a1f1..a94607a 100644
--- a/src/class_linker.cc
+++ b/src/class_linker.cc
@@ -2800,6 +2800,12 @@
   }
 }
 
+void ClassLinker::DumpForSigQuit(std::ostream& os) const {
+  MutexLock mu(classes_lock_);
+  os << "Loaded classes: " << image_classes_.size() << " image classes; "
+     << classes_.size() << " allocated classes\n";
+}
+
 size_t ClassLinker::NumLoadedClasses() const {
   MutexLock mu(classes_lock_);
   return classes_.size() + image_classes_.size();