Capturing dmesg upon system crash on 6.3

Yehonatan Yossef yoniy at mellanox.co.il
Tue Feb 26 16:37:40 UTC 2008


> > > > > > I'm facing a system reboot upon loading of the driver, and
> > > > >
> > > > > I could use
> > > > >
> > > > > > a tool for capturing dmesg upon system crash (such as
> > >
> > > netconsole
> > >
> > > > > > on Linux).
> > > > >
> > > > > Your kernel isn't setup for driver development:
> > > > > http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-ha
> > > > > ndbook/kerneldebug.html
> > > > > http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kern
> > > > > elconfig.html
> > > > >
> > > > > Basically, your system is rebooting cause the kernel 
> panics and 
> > > > > you're not setup for crash dumps, or anything that could help 
> > > > > you diagnose the panic.
> > > > > --
> > > > > Mel
> > > >
> > > > I've setup the dumpdev/dumpdir and I get a vmcore image
> > >
> > > upon a crash.
> > >
> > > > I don't really understand how to use kgdb in order to read
> > >
> > > it but more
> > >
> > > > than that - I don't need that much of data. I only want 
> the dmesg 
> > > > report at the moment, see at what point my driver went
> > >
> > > crazy. Is it possible?
> > >
> > >
> > > Uhm, no. Fundamental logic flaw: when a kernel is 
> stopped, you can't 
> > > issue userland commands. All you have when you use ddb, is the 
> > > contents of the registers, ram and backtrace.
> > >
> > > You really want ddb in the kernel: when a kernel panics, 
> it'll drop 
> > > to ddb and you can examine registers and do a backtrace, 
> instead of 
> > > dumping core and rebooting. It should point exactly to where your 
> > > driver went crazy.
> > > --
> > > Mel
> >
> > I meant making the dmesg log sent over the network/serial 
> console to a 
> > linux machine. I just found out about syslogd, I'm trying to figure 
> > out how to use it.
> > DDB sounds like a great option for deeper debugging, I'll use it.
> 
> Ooh, sorry, totally got your question wrong.
> Serial should really be the way to go. But it depends when 
> you load your driver. If your driver panics the kernel before 
> it gets to loading syslogd, there may not be much sent.
> You could help this by not loading the network interface on 
> bootup, but via cron instead, so that you're sure syslogd is 
> up and running when you load the driver. Of course this 
> assumes a working main network interface and that the driver 
> isn't loaded automatically by /boot/loader.conf.
> --
> Mel
> 

Thanks Mel, DDB is a great help.





More information about the freebsd-questions mailing list