1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-17 15:27:36 +00:00

Update the parts on how to take a kernel crash dump.

Reviewed by:
Submitted by:
Obtained from:
This commit is contained in:
Joerg Wunsch 1995-07-30 12:53:39 +00:00
parent d7515ab5cf
commit 4a04ac03ab
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=9791

View File

@ -1,6 +1,8 @@
# Hello emacs, this is -*- indented-text -*-
Kernel debugging FAQ for FreeBSD
$Id: kernel-debug.FAQ,v 1.1 1995/03/21 20:19:31 jkh Exp $
$Id: kernel-debug.FAQ,v 1.2 1995/03/25 12:35:00 joerg Exp $
*** Debugging a kernel crash dump with kgdb ***
@ -13,19 +15,30 @@ $Id: kernel-debug.FAQ,v 1.1 1995/03/21 20:19:31 jkh Exp $
Here are some instructions for getting kernel debugging working on a
crash dump, it assumes that you have enough swap space for a crash
dump. If you happen to have multiple swap partitions with the first
one being too small to keep the dump, you can configure your kernel to
use an alternate dump device (in the ``kernel'' line). Dumps to non-
swap devices (e.g. tapes) are currently not supported.
one being too small to keep the dump, you can configure your kernel
to use an alternate dump device (in the ``config kernel'' line), or
you can tell this using the dumpon(8) command. Dumps to non-swap
devices (e.g. tapes) are currently not supported.
Config your kernel using config -g
Remember that you need to specify ``options DODUMP'' in your config
file in order to get kernel core dumps.
Either, use the dumpon(8) command to tell the kernel where to dump
to (note that this will have to be done after configuring the
partition in question as swap space via swapon(8)). This is
normally arranged via sysconfig and /etc/rc. Alternatively, you can
hard-code the dump device via the `dump' clause in the `config' line
of your kernel config file. This is deprecated, but might be the
only chance to get a crash dump from a kernel that's not booting at
all, so that you didn't had the ability to run any command before it
used to crash.
When the kernel's been built make a copy of it, say kernel.debug, and
then run strip -x on the original. Install the original as normal.
You may also install the unstripped kernel, but symtab lookup time
for some programs might drastically increase.
When the kernel's been built make a copy of it, say kernel.debug,
and then run strip -x on the original. Install the original as
normal. You may also install the unstripped kernel, but symtab
lookup time for some programs might drastically increase, and since
the whole kernel is loaded entirely at boot time and cannot be
swapped out later, you're going to waste several megabytes of
physical RAM.
If you are testing a new kernel (e.g. by typing the new kernel's
name at the boot prompt), but need to boot a different one in order
@ -185,12 +198,11 @@ $Id: kernel-debug.FAQ,v 1.1 1995/03/21 20:19:31 jkh Exp $
Not everything is lost here. Don't panic. :-)
Of course, you still need to configure all your kernels with the
DODUMP option being set, otherwise you won't get a core dump at all.
(This is for safety reasons in the default kernels, to avoid them
trying to dump e.g. during system installation where there's no
FreeBSD partition at all and valuable data on the disk could be
destroyed.)
Of course, you still need to enable crash dumps at all. See above
on the options you've got to do this. (This is for safety reasons
in the default kernels, to avoid them trying to dump e.g. during
system installation where there's no FreeBSD partition at all and
valuable data on the disk could be destroyed.)
Go to your kernel compile directory, and edit the line containing
COPTFLAGS?=-O. Add the `-g' option there (but DON'T change anything
@ -249,9 +261,10 @@ $Id: kernel-debug.FAQ,v 1.1 1995/03/21 20:19:31 jkh Exp $
The second scenario is a hot-key on the keyboard, usually Ctrl-Alt-
ESC. (For syscons, this can be remapped, and some of the
distributed maps do this, so watch out.) There are patches
available for a COMCONSOLE kernel, ask me (joerg@FreeBSD.org) for
them.
distributed maps do this, so watch out.) There's an option
available for a COMCONSOLE kernel (``options BREAK_TO_DEBUGGER'')
that allows the use of a serial line BREAK on the console line to
enter DDB.
The third way is that any panic condition will branch to DDB if the
kernel is configured to use it. (Thus it is not wise to configure a