(no commit message)
[ikiwiki.git] / docs / howtos / HowToCreateACoreDump.mdwn
1 # Getting a system core dump 
2 [[!toc levels=3 ]]
3 A full system core dump (also called post-mortem dump) is sometimes needed to track down a bug in the DragonFlyBSD kernel.
4
5 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.
6
7 ## Requirements 
8
9 * a dump partition at least as large as main memory (usually swap)
10
11 * `/var/crash` must be on a filesystem with enough space to hold the dump (the size of main memory).
12
13 * sync on panic should be disabled in the kernel
14
15 ## Setup 
16 ### Setting up the dump device 
17
18 * If your swap partition is as large as main memory, it can be used as a dump device.
19
20 * If your swap partition is too small, you use any partition that doesn't contain a filesystem.
21
22 * Add this to `/etc/rc.conf`:
23
24     
25      dumpdev="/dev/<devicenode>"
26
27
28 * Please refer to [dumpon(8)](http://leaf.dragonflybsd.org/cgi/web-man?command#dumpon&section8) (http://leaf.dragonflybsd.org/cgi/web-man?command=dumpon&section=8) for details.
29
30 ### Setting up /var/crash 
31 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.
32
33     
34     # cpdup /var/crash /home/var.crash
35     # rm -rf /var/crash
36     # ln -s /home/var.crash /var/crash
37
38 ### Disabling sync on panic 
39 Add this to `/etc/sysctl.conf`
40
41     
42     kern.sync_on_panic=0
43
44 # Getting a core dump 
45 Hit `<ctrl-alt-esc>` at the desired moment. This will break into the kernel debugger. Then type:
46
47     
48     # panic
49
50 The machine should reboot automatically. Sometimes it might require a cold reset.
51
52 If the machine has dropped to a dbb> prompt by itself you can type the following to get a useful dump:
53
54     
55     # call dumpsys
56
57 During the following startup the core dump will be automatically saved to `/var/crash`.
58
59 # Getting a coredump on a remote machine
60 Set debug.debugger_on_panic to 0 or configure your kernel with options DDB_UNATTENDED.
61
62 # Useful hints 
63
64 * You can have the settings described above take effect without rebooting using the following commands:
65
66     
67     # dumpon /dev/<devicenode>
68     # sysctl kern.sync_on_panic=0
69
70
71 * 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):
72
73     
74     hw.physmem="64M"
75
76
77 * 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 the `sysctl machdep.enable_panic_key to 1`.