xref: /netbsd-src/sys/gdbscripts/dmesg (revision b2032fd53aef32319f5e27aba09055e0e156f8bf)
1#	$NetBSD: dmesg,v 1.1 2020/04/14 13:58:11 christos Exp $
2
3define dmesg
4	set $mbp = msgbufp
5	set $bufdata = &$mbp->msg_bufc[0]
6	set $print = $mbp->msg_bufs
7	set $newl = 0
8	set $skip = 0
9	set $i = -1
10	set $p = $bufdata + $mbp->msg_bufx - 1
11
12	while ($i < $mbp->msg_bufs)
13		set $i = $i + 1
14		set $p = $p + 1
15		if ($p == $bufdata + $mbp->msg_bufs)
16			set $p = $bufdata
17		end
18		if ($i < $mbp->msg_bufs - $print)
19			loop_continue
20		end
21		set $c = $p[0]
22		# Skip syslog sequences
23		if ($skip)
24			if ($c == '>')
25				set $newl = 0
26				set $skip = 0
27			end
28			loop_continue
29		end
30		if ($newl && $c == '<')
31			set $skip = 1
32			loop_continue
33		end
34		if ($c == '\0')
35			loop_continue
36		end
37		set $newl = $c == '\n'
38		printf "%c", $c
39	end
40	if (!$newl)
41		printf "\n"
42	end
43end
44
45document dmesg
46print the message buffer
47end
48