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