gdbinit: Add a function to show the unread portion of the kernel msgbuf.
authorSascha Wildner <saw@online.de>
Tue, 12 Jul 2011 18:39:17 +0000 (20:39 +0200)
committerSascha Wildner <saw@online.de>
Tue, 12 Jul 2011 18:39:17 +0000 (20:39 +0200)
kgdb only shows this at the start via a hard coded function. This
function is handy if you want to see it again and are too lazy to
scroll up or when it's out of the scrollback.

share/misc/gdbinit

index 6cf4260..cd4ee2d 100644 (file)
@@ -133,6 +133,29 @@ define lstok
        _infotok &vmobj_token
 end
 
+define dmesg
+       set $bufp = msgbufp->msg_ptr
+       set $size = msgbufp->msg_size
+       set $rseq = msgbufp->msg_bufr
+       set $wseq = msgbufp->msg_bufx
+       set $rseq = $rseq % $size
+       set $wseq = $wseq % $size
+       if ( $bufp != 0 && $size != 0 && $rseq != $wseq )
+               while ( $rseq < $wseq )
+                       set $c = $bufp + $rseq
+                       printf "%c", *$c
+                       set $rseq = $rseq + 1
+                       if ( $rseq == msgbufp->msg_size )
+                               set $rseq = 0
+                       end
+               end
+               if ( *$c == '\n' )
+                       printf "\n"
+               end
+               printf "\n"
+       end
+end
+
 # Documentation, usable within GDB using the 'help' command.
 document lsvfs
 Output list of loaded file systems, refcount, similar to the
@@ -177,3 +200,7 @@ document infotok
 Takes one argument, a struct lwkt_token * (pointer) and prints some
 information about that token.
 end
+
+document dmesg
+Shows the unread portion of the kernel message buffer.
+end