Skip site navigation (1)Skip section navigation (2)
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>