Index: /trunk/Ohana/src/libohana/include/ohana_allocate.h
===================================================================
--- /trunk/Ohana/src/libohana/include/ohana_allocate.h	(revision 42073)
+++ /trunk/Ohana/src/libohana/include/ohana_allocate.h	(revision 42074)
@@ -47,4 +47,5 @@
 void ohana_memdump_strings_file (FILE *f, int VERBOSE);
 void ohana_memdump_set_maxlines (int N);
+void ohana_memblock_show_stats (void *in);
 
 # define ohana_memcheck(X) ohana_memcheck_func (__FILE__, __LINE__, __func__, X)
Index: /trunk/Ohana/src/libohana/src/ohana_allocate.c
===================================================================
--- /trunk/Ohana/src/libohana/src/ohana_allocate.c	(revision 42073)
+++ /trunk/Ohana/src/libohana/src/ohana_allocate.c	(revision 42074)
@@ -754,2 +754,28 @@
   NblockMaxDump = N;
 }
+
+void ohana_memblock_show_stats (void *in) {
+
+  OhanaMemblock *ref;
+
+  if (!in) { fprintf (stderr, "void pointer\n"); return; }
+
+  if (!lastBlock) { fprintf (stderr, "no memory allocated yet\n"); return; }
+
+  ref = (OhanaMemblock *) in - 1;
+
+  fprintf (stderr, "file: %s\n", ref->file);
+  fprintf (stderr, "line: %d\n", ref->line);
+  fprintf (stderr, "func: %s\n", ref->func);
+  
+  fprintf (stderr, "size: %zd\n", ref->size);
+
+  fprintf (stderr, "start post: 0x%08x\n", ref->startblock);
+  fprintf (stderr, "end  block: 0x%08x\n", ref->endblock);
+
+  // pointer to the start of the user memory
+  char *ptr = (char *)(in) + ref->size;
+  uint32_t endpost = *(uint32_t *) ptr;
+
+  fprintf (stderr, "end   post: 0x%08x\n", endpost);
+}
