summaryrefslogtreecommitdiff
path: root/sys/gdbscripts
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>2020-04-14 13:58:11 +0000
committerchristos <christos@NetBSD.org>2020-04-14 13:58:11 +0000
commite539158496838f2a76a14386a60601329b013e05 (patch)
tree8f2c88c3024aa3a06fec1c476dd572cdd389edd3 /sys/gdbscripts
parent18bd2fa775220c4afd2dc5343ef4ccc5bdc633dc (diff)
Add dmesg functionality.
Diffstat (limited to 'sys/gdbscripts')
-rw-r--r--sys/gdbscripts/dmesg47
1 files changed, 47 insertions, 0 deletions
diff --git a/sys/gdbscripts/dmesg b/sys/gdbscripts/dmesg
new file mode 100644
index 00000000000..8966a873d78
--- /dev/null
+++ b/sys/gdbscripts/dmesg
@@ -0,0 +1,47 @@
+# $NetBSD: dmesg,v 1.1 2020/04/14 13:58:11 christos Exp $
+
+define dmesg
+ set $mbp = msgbufp
+ set $bufdata = &$mbp->msg_bufc[0]
+ set $print = $mbp->msg_bufs
+ set $newl = 0
+ set $skip = 0
+ set $i = -1
+ set $p = $bufdata + $mbp->msg_bufx - 1
+
+ while ($i < $mbp->msg_bufs)
+ set $i = $i + 1
+ set $p = $p + 1
+ if ($p == $bufdata + $mbp->msg_bufs)
+ set $p = $bufdata
+ end
+ if ($i < $mbp->msg_bufs - $print)
+ loop_continue
+ end
+ set $c = $p[0]
+ # Skip syslog sequences
+ if ($skip)
+ if ($c == '>')
+ set $newl = 0
+ set $skip = 0
+ end
+ loop_continue
+ end
+ if ($newl && $c == '<')
+ set $skip = 1
+ loop_continue
+ end
+ if ($c == '\0')
+ loop_continue
+ end
+ set $newl = $c == '\n'
+ printf "%c", $c
+ end
+ if (!$newl)
+ printf "\n"
+ end
+end
+
+document dmesg
+print the message buffer
+end