title: KGDB
text: # KGDB
  
  KGDB is a debugger for the Linux kernel and the kernels of NetBSD and FreeBSD. It requires two machines that are connected via a serial connection. The serial connection may either be an RS-232 interface using a null modem cable, or via the UDP/IP networking protocol (KGDB over Ethernet, KGDBoE). The target machine (the one being debugged) runs the patched kernel and the other (host) machine runs gdb. The GDB remote protocol is used between the two machines.
  
  KGDB was implemented as part of the NetBSD kernel in 1997, and FreeBSD in version 2.2. The concept and existing remote gdb protocol were later adapted as a patch to the Linux kernel. A scaled-down version of the Linux patch was integrated into the official Linux kernel in version 2.6.26.
  
  KGDB is available for the following architectures under Linux: IA-32, x86-64, PowerPC, ARM, MIPS, and ESA/390. It is available on all supported architectures of NetBSD and FreeBSD using only RS-232 connectivity.
  
  Amit Kale maintained the Linux KGDB from 2000 to 2004. From 2004 to 2006, it was maintained by Linsyssoft Technologies, after which Jason Wessel at Wind River Systems, Inc. took over as the official maintainer. Ingo Molnar and Jason Wessel created a slimmed-down and cleaned up version of KGDB which was called "kgdb light" (without Ethernet support and many other hacks). This was the one merged into the 2.6.26 kernel. This version of kgdb supports only RS-232 connectivity, using a special driver which can split debugger inputs and console inputs such that only a single serial port is required.
  
  ## FreeBSD
  
  A program named kgdb is also used by FreeBSD. It is a gdb based utility for debugging kernel core files. It can also be used for remote "live" kernel debugging, much in the same way as the Linux KGDB, over either a serial connection or a firewire link.
  
  