This feature is very useful but I didn't realise it existed since it's not in GENERIC. Can we document it?
Index: crash.8 =================================================================== RCS file: /cvs/src/share/man/man8/crash.8,v retrieving revision 1.33 diff -u -p -r1.33 crash.8 --- crash.8 8 Nov 2010 15:52:05 -0000 1.33 +++ crash.8 26 Apr 2015 10:29:47 -0000 @@ -186,7 +186,7 @@ For custom-built kernels, it is helpful configured your kernel to include debugging symbols with .Sq makeoptions DEBUG="-g" .Pq see Xr options 4 -(though you will not be able to boot an unstripped kernel since it uses too +(though you might not be able to boot an unstripped kernel since it uses much memory). In this case, you should use .Pa bsd.gdb @@ -293,8 +293,26 @@ After this, the command will show a trace of procedure calls, right back to where the selected process entered the kernel. .Sh CRASH LOCATION DETERMINATION +Custom-built kernels configured to include debugging symbols with +.Sq makeoptions DEBUG="-g" +.Pq see Xr options 4 +show symbolic names for addresses and line numbers from source files +in +.Xr ddb 4 +traces. +To make use of this, boot +.Pa bsd.gdb +instead of +.Pa bsd +and try reproducing the crash to drop the system into +.Xr ddb 4 . +Note that +.Pa bsd.gdb +may fail to boot on memory-constrained systems. +.Pp +It is also possible to compile individual files with debug symbols. The following example should make it easier for a novice kernel -developer to find out where the kernel crashed. +developer to find out where a kernel compiled without debug symbols crashed. .Pp First, in .Xr ddb 4