# $NetBSD: kernhist,v 1.2 2016/05/12 00:35:10 mrg Exp $ # by mrg and skrll define kernhist dont-repeat set $hist = (struct kern_history *)&$arg0 set $histf = $hist->f set $histn = $hist->n set $lcv = $histf printf "Kernel history %s has %d entries (next free %d)\n", $hist->name, $histn, $histf while (1) set $e = $hist->e[$lcv] set $fmt = $e.fmt if ($fmt) printf "%06lx.%06d ", $e.tv.tv_sec, $e.tv.tv_usec printf "%s#%ld@%d: ", $e.fn, $e.call, $e.cpunum printf "%s: %lx %lx %lx %lx\n", $fmt, $e.v[0], $e.v[1], $e.v[2], $e.v[3] set $lcv = ($lcv + 1) % $histn else if ($histf == 0) printf "No entries\n" loop_break end # if fmt is NULL and hist->f isn't zero, skip back to # the start of the list since it hasn't looped yet. set $lcv = 0 end if ($lcv == $histf) loop_break end end end document kernhist dump a kernel hist. eg, "kernhist usbhist". note that the format is not expanded due to there being now way to pass a variable format string to gdb's printf. end