KGDB is a source level
debugger for linux kernel. It is used along with gdb to debug linux
kernel. Kernel developers can debug a kernel similar to application
programs with use of KGDB. It makes it possible to place breakpoints in
kernel code, step through the code and observe variables.
Two machines are required
for using KGDB. One of these machines is a development machine and the
other is a test machine. The machines are connected through a serial
line, a null-modem cable which connects their serial ports. The
kernel to be debugged runs on the test machine. gdb runs on the
development machine. The serial line is used by gdb to communicate to
the kernel being debugged.
KGDB is available for
i386, x86_64, ppc and s390 architectures.
KGDB is a kernel patch.
It has to be applied to a linux kernel to enable kernel debugging.
KGDB patch adds following components to a kernel
available for x86 architecture on several versions of linux kernel from
2.4.6 to 2.6.0. Please go to downloads
page for getting it
- gdb stub - The gdb stub is heart of the debugger. It is the part
that handles requests coming from gdb on the development machine. It
has control of all processors in the target machine when kernel running
on it is inside the debugger.
- modifications to fault handlers - Kernel gives control to
debugger when an unexpected fault fault occurs. A kernel which does not
contain gdb panics on unexpected faults. Modifications to fault handles
allow kernel developers to analyze unexpected faults.
- serial communication - This component uses a serial driver in the
kernel and offers an interface to gdb stub in the kernel. It is
responsible for sending and receiving data from a serial line. This
component is also responsible for handling control break request sent by