Several improvements to (internal) statistics reporting about memory usage,
making it easier to understand the memory and/or oom situation.
No functional (user level) change.

* For --profile-heap=yes, sort the cost centers by decreasing size,
  so that the most relevant cost centers are closed to the arena
  total.

* factorise duplicated code calling a series of print stat functions

* VG_(show_sched_status)
    optionally show the host stacktrace
               the amount of valgrind stack used by each thread
               the exited threads

* various functions: update to add VG_(show_sched_status) new
  args, keeping the same info production as before.
 
* In case of out of memory situation detected by m_mallocfree.c,
  reports more information:
    valgrind and tool stats
    scheduler status (full information)

* gdbserver v.info scheduler :
    show full information.

The oom behaviour/reporting was tested using a small
program causing an OOM, and having several threads
(some terminated, some still active).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13897 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/include/pub_tool_gdbserver.h b/include/pub_tool_gdbserver.h
index 0c2545f..868ca0a 100644
--- a/include/pub_tool_gdbserver.h
+++ b/include/pub_tool_gdbserver.h
@@ -186,6 +186,10 @@
                                               SizeT* szB, 
                                               HChar **ssaveptr);
 
+/* Print various statistics about Valgrind core,
+   and optionally tool and memory statistics. */
+extern void VG_(print_all_stats) (Bool memory_stats, Bool tool_stats);
+
 #endif   // __PUB_TOOL_GDBSERVER_H
 
 /*--------------------------------------------------------------------*/