HowToCreateACoreDump
Getting a system core dump
A full system core dump (also called post-mortem dump) is sometimes needed to track down a bug in the DragonFlyBSD kernel.
Please note: A full core dump is obtained by triggering a kernel panic. Like when pulling the power plug from the wall socket, unsaved data will be lost, recently saved data might be lost, and filesystems mounted async might be destroyed.
Requirements
a dump partition at least as large as main memory (usually swap)
/var/crashmust be on a filesystem with enough space to hold the dump (the size of main memory).sync on panic should be disabled in the kernel
Setup
Setting up the dump device
If your swap partition is as large as main memory, it can be used as a dump device.
If your swap partition is too small, you use any partition that doesn't contain a filesystem.
Add this to
/etc/rc.conf:dumpdev="/dev/"
Please refer to dumpon(8) (http://leaf.dragonflybsd.org/cgi/web-man?command=dumpon§ion=8) for details.
Setting up /var/crash
If /var/crash is residing on a filesystem without enough room to accommodate the core dump, you can move it to a different filesystem and use a symbolic link.
# cpdup /var/crash /home/var.crash
# rm -rf /var/crash
# ln -s /home/var.crash /var/crash
Disabling sync on panic
Add this to /etc/sysctl.conf
kern.sync_on_panic=0
Getting a core dump
Hit <ctrl-alt-esc> at the desired moment. This will break into the kernel debugger. Then type:
# panic
The machine should reboot automatically. Sometimes it might require a cold reset.
If the machine has dropped to a dbb> prompt by itself you can type the following to get a useful dump:
# call dumpsys
During the following startup the core dump will be automatically saved to /var/crash.
Getting a coredump on a remote machine
Set debug.debugger_on_panic to 0 or configure your kernel with options DDB_UNATTENDED.
Useful hints
You can have the settings described above take effect without rebooting using the following commands:
dumpon /dev/
sysctl kern.sync_on_panic=0
Core files can get quite unwieldy with large amounts of main memory. In order to temporarily limit the amount of physical memory add a line similar to the following to /boot/loader.conf (and remove it again once you've produced the core dump):
hw.physmem="64M"
On systems derived from DEVELOPMENT (HEAD) after 20 August 2005, you can get a panic directly by pressing
<ctrl-alt-shift-esc>if you set thesysctl machdep.enable_panic_key to 1.
