gallium: add debug facility to dump random blobs as hex
authorKeith Whitwell <keith@tungstengraphics.com>
Thu, 20 Mar 2008 13:10:32 +0000 (13:10 +0000)
committerKeith Whitwell <keith@tungstengraphics.com>
Thu, 20 Mar 2008 13:10:32 +0000 (13:10 +0000)
src/gallium/auxiliary/util/p_debug.c
src/gallium/include/pipe/p_debug.h

index bd3a0221eaadbd12601a4731b0e605293abd7409..c51e9e6a692b253e5c65eb4963987589778d094c 100644 (file)
@@ -85,6 +85,22 @@ void debug_printf(const char *format, ...)
 }
 
 
+void debug_print_blob( const char *name,
+                       const void *blob,
+                       unsigned size )
+{
+   const unsigned *ublob = (const unsigned *)blob;
+   unsigned i;
+
+   debug_printf("%s (%d dwords%s)\n", name, size/4,
+                size%4 ? "... plus a few bytes" : "");
+
+   for (i = 0; i < size/4; i++) {
+      debug_printf("%d:\t%08x\n", i, ublob[i]);
+   }
+}
+
+
 /* TODO: implement a debug_abort that calls EngBugCheckEx on WIN32 */
 
 
@@ -240,3 +256,5 @@ debug_dump_flags(const struct debug_named_value *names,
    
    return output;
 }
+
+
index e924c1ef6060292d08a07f40a36c73a44ec39112..14f8056924dc9d84ec56d50e3297a988911d3227 100644 (file)
@@ -73,6 +73,14 @@ extern "C" {
  */
 void debug_printf(const char *format, ...);
 
+
+/* Dump a blob in hex to the same place that debug_printf sends its
+ * messages:
+ */
+void debug_print_blob( const char *name,
+                       const void *blob,
+                       unsigned size );
+
 /**
  * @sa debug_printf 
  */