summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/config/config.844
-rw-r--r--usr.sbin/config/configvers.h4
2 files changed, 44 insertions, 4 deletions
diff --git a/usr.sbin/config/config.8 b/usr.sbin/config/config.8
index d2be2bb..67af781 100644
--- a/usr.sbin/config/config.8
+++ b/usr.sbin/config/config.8
@@ -73,7 +73,8 @@ Available options and operands:
.Pp
.Bl -tag -width SYSTEM_NAME
.It Fl g
-Configure a system for debugging.
+Configure a system for debugging. This is the default, so this flag has no
+meaning, and causes a warning message to be printed.
.It Fl p
Configure a system for profiling; for example,
.Xr kgmon 8
@@ -83,9 +84,13 @@ If two or more
.Fl p
options are supplied,
.Nm
-will configure a system for high resolution profiling.
+configures a system for high resolution profiling.
.It Fl r
Remove the old compile directory (see below).
+.It Fl s
+Configure a system without debugging symbols. This saves both time and space,
+but if problems occur with the kernel, it will be almost impossible to find out
+their causes.
.It Ar SYSTEM_NAME
Specifies the name of the system configuration file
containing device specifications, configuration options
@@ -150,6 +155,41 @@ entire input file is embedded in the new kernel. This means that
can be used to extract it from a kernel.
.Pp
Strings | grep ___ will print just the configure information.
+.Sh DEBUG KERNELS
+Traditional BSD kernels were compiled without symbols due to the heavy load on
+the system when compiling a
+.if n "debug"
+.if t ``debug''
+kernel. A debug kernel contains complete symbols for all the source files, and
+enables an experienced kernel programmer to analyse the cause of a problem. The
+debuggers available prior to 4.4BSD-Lite were able to find some information
+from a normal kernel; this is no longer the case with
+.Xr gdb 8 ,
+and a debug kernel is needed for any meaningful analysis.
+.Pp
+Building a debug kernel is the default with FreeBSD, and the
+.Fl s
+option is required to revert to historical behaviour. A debug kernel takes up
+to 30% longer to build and requires about 30 MB of disk storage in the build
+directory, compared to about 6 MB for a non-debug kernel. A debug kernel is
+about 11 MB in size, compared to about 2 MB for a non-debug kernel. This space
+is used both in the root file system and at run time in memory. Since kernel
+storage is non-pageable, the additional space required by a debug kernel is lost
+to the system when not debugging.
+.Pp
+There is currently little sense in installing and booting from a debug kernel,
+since the only tools available which use the symbols do not run on-line. There
+are therefore two options for installing a debug kernel:
+.Bl -bullet
+.It
+.Nm make
+.Ar install
+makes a stripped copy of the kernel and installs it in the root file system.
+.It
+.Nm make
+.Ar install.debug
+installs the complete debug kernel in the root file system.
+.El
.Sh FILES
.Bl -tag -width /sys/i386/conf/Makefile.i386 -compact
.It Pa /sys/conf/files
diff --git a/usr.sbin/config/configvers.h b/usr.sbin/config/configvers.h
index c43c000..35c31ad 100644
--- a/usr.sbin/config/configvers.h
+++ b/usr.sbin/config/configvers.h
@@ -6,6 +6,6 @@
* The numbering scheme is inspired by the sys/conf/newvers.sh RELDATE
* and <osreldate.h> system.
*
- * $Id: configvers.h,v 1.7 1998/10/23 17:05:06 bde Exp $
+ * $Id: configvers.h,v 1.8 1998/11/15 18:07:35 dfr Exp $
*/
-#define CONFIGVERS 300009
+#define CONFIGVERS 300010
OpenPOWER on IntegriCloud