Index: trunk/ppImage/src/ppMem.c
===================================================================
--- trunk/ppImage/src/ppMem.c	(revision 6260)
+++ trunk/ppImage/src/ppMem.c	(revision 6396)
@@ -53,7 +53,7 @@
 
     psMemBlock **leaks = NULL;          // List of leaks
-    int nLeaks = psMemCheckLeaks(0, &leaks, leakFile, false); // Number of leaks
+    int nLeaks = psMemCheckLeaks(0, &leaks, leakFile, true); // Number of leaks
     fprintf(stderr, "%d leaks found:\n", nLeaks);
-    for (int i = nLeaks - 1; i > 0; i--) {
+    for (int i = nLeaks - 1; i >= 0; i--) {
         ppMemPrint(leaks[i]);
     }
@@ -63,2 +63,23 @@
     fprintf(stderr, "%d memory blocks corrupted.\n", nCorrupted);
 }
+
+void ppMemUsed(void)
+{
+    psMemBlock **leaks = NULL;          // List of leaks
+    int nLeaks = psMemCheckLeaks(0, &leaks, NULL, true); // Number of leaks
+    size_t total = 0;                   // Total size
+    size_t largest = 0;                 // Largest block size
+    psMemId index = -1;                 // Id number of largest block
+    for (int i = nLeaks - 1; i >= 0; i--) {
+        psMemBlock *mb = leaks[i];
+        if (mb->userMemorySize >= largest) {
+            largest = mb->userMemorySize;
+            index = mb->id;
+        }
+        total += mb->userMemorySize;
+    }
+    psFree(leaks);
+
+    psLogMsg(__func__, PS_LOG_INFO, "Memory used: %ld\nLargest id: %ld (%ld bytes)", total, index, largest);
+
+}
