Date: Mon, 14 Sep 1998 21:45:58 +0800 From: Peter Wemm <peter@netplex.com.au> To: Poul-Henning Kamp <phk@critter.freebsd.dk> Cc: Andrzej Bialecki <abial@FreeBSD.ORG>, cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG Subject: Re: cvs commit: src/sys/i386/i386 machdep.c Message-ID: <199809141346.VAA10681@spinner.netplex.com.au> In-Reply-To: Your message of "Mon, 14 Sep 1998 14:28:41 %2B0200." <24254.905776121@critter.freebsd.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
Poul-Henning Kamp wrote: > In message <199809141225.UAA10464@spinner.netplex.com.au>, Peter Wemm writes: > >Poul-Henning Kamp wrote: > >> In message <199809141147.EAA18800@freefall.freebsd.org>, Andrzej Bialecki wri > > te > >> s: > >> >abial 1998/09/14 04:47:41 PDT > >> > > >> > Modified files: > >> > sys/i386/i386 machdep.c > >> > Log: > >> > This implements retrieving the contents of message buffer via sysctl(3) > >> > as "machdep.msgbuf". It's needed in case of using stripped kernels, whe re > >> > normal dmesg (which has to use kvm) doesn't work. > >> > > >> > The buffer is unwound, meaning that the data will be linear, possibly > >> > with some leading NULLs. > >> > >> Now dmesg should be changed to use this interface, so that one less > >> program needs access to /dev/kmem... > > > >I've found dmesg's ability to extract the msgbuf from a crashdump to be > >invalueable.. ie: "dmesg -N kernel.41 -M vmcore.41". It would be a shame > >to loose this ability without some other replacement. The same goes for > >ps(1). > > I think we should have a crash(8) style tool for this, or maybe a set > if gdb macros. > > /dev/kmem should die By all means, yes, it'd be great when/if it goes away, but I doubt that gdb macros will ever even remotely fill the hole left. The main reason why it won't fly is that you need a -g kernel, and people generally don't compile -g kernels unless things are getting pretty grim. gdb is overkill for what is badly needed. crash(8) would be great, if only it could ever get written. :-) What I'd suggest is that the most sensible thing would be to have a general supporting framework that could allow modules to be linked in to extend the command set. At a minimum, it'll need a pretty complete ps, netstat, dmesg, stack traceback, process state dumps, a data examination tool, disassembler, and the ability to teach it about new structures. Macros and scripting would be really nice. Savecore could then also do a post-crash automatic analysis right next to kernel.x and vmcore.x. Most of what sysv crash(8) does is display various tables and structures. Some way of processing include files and/or stabs output would be really nice to shortcut the legwork. Then, by all means, fry use of libkvm and eventually itself. I'll be there to help kill it. :-) Cheers, -Peter
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199809141346.VAA10681>