On Tue, 2005-Nov-15 02:08:12 -0800, Rob wrote:
> makeoptions DEBUG=-g
> options INVARIANTS
> options WITNESS
> options WITNESS_KDB
> options KDB
> options DDB
> options DDB_NUMSYM
> options GDB
>
>Is that enough?

If your system is headless, you probably want 'options BREAK_TO_DEBUGGER'
as well.

First question is: Does the system still deadlock?  INVARIANTS and
WITNESS will have added sanity checks which might have picked up the
problem.

>1) Can I debug a kernel that does not crash, but
>   just hangs in a deadlock? Everything seems to
>   be frozen, except pinging the PC....

Have a look at 
http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/kerneldebug-online-ddb.html
and ddb(4).  Unless you have another system handy, you might like to print
out ddb(4) - it's difficult to read man pages when you're in the kernel
debugger :-).

>2) Is such debugging possible on a headless PC
>   without a keyboard attached?
>   I do have serial console access.

Yes.  See above URL.  The advantage is that you can (hopefully)
capture a log of your debug session.  Send a serial BREAK and you
should get a DDB> prompt.

Basically, wait until your system deadlocks.  BREAK into DDB.
As a start, run 'show lockedvnods', 'ps'.  My guess is that you'll
see a lock that has a number of waiters - which is probably the
culprit.  Use 'panic' to get a crashdump and then you can use kgdb
to rummage around once you reboot - see
http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/kerneldebug-gdb.html

If in doubt, post the output from the above commands here and someone
will hopefully provide further input.

-- 
Peter Jeremy
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to