Upon a subsequent reboot,
savecore
is typically run out of
rc(8),
before swapping is enabled, to copy the kernel and the saved memory image
into
directory
,
and enters a reboot message and information about the core dump into
the system log.
The kernel and core file can then be analyzed using various tools, including dmesg(8), fstat(1), gdb(1), iostat(8), netstat(1), ps(1), and pstat(8), to attempt to deduce the cause of the crash.
Crashes are usually the result of kernel bugs; if this is suspected, a full bug report should be filed using send-pr(1), containing as much information as possible about the circumstances of the crash. Since crash dumps are typically very large and may contain whatever (potentially confidential) information was in memory at the time of the crash, do NOT include a copy of the crash dump file in the bug report; instead, save it somewhere in the event that a NetBSD developer wants to examine it.
The options are as follows:
/netbsd
if the check fails.
savecore
checks the core dump in various ways to make sure that it is current and
that it corresponds to the currently running system.
If it passes these checks, it saves the core image in
directory/netbsd.#.core
and the system in
directory/netbsd.#
(or in
directory/netbsd.#.core.gz
and
directory/netbsd.#.gz
,
respectively, if the
-z
option is used).
The
``#''
is the number from the first line of the file
directory/bounds
,
and it is incremented and stored back into the file each time
savecore
successfully runs.
savecore
also checks the available disk space before attempting to make the copies.
If there is insufficient disk space in the file system containing
directory,
or if the file
directory/minfree
exists and the number of free kilobytes (for non-superusers) in the
file system after the copies were made would be less than the number
in the first line of this file, the copies are not attempted.
If savecore successfully copies the kernel and the core dump, the core dump is cleared so that future invocations of savecore will ignore it.