KGDB es un depurador para el núcleo Linux y los núcleos de NetBSD y FreeBSD . Requiere dos máquinas conectadas mediante una conexión serial. La conexión serial puede ser una interfaz RS-232 mediante un cable módem nulo o mediante el protocolo de red UDP /IP (KGDB over Ethernet, KGDBoE). La máquina de destino (la que se está depurando) ejecuta el núcleo parcheado y la otra máquina (host) ejecuta gdb . El protocolo remoto GDB se utiliza entre las dos máquinas.
KGDB se implementó como parte del núcleo NetBSD en 1997, [1] y FreeBSD en la versión 2.2. El concepto y el protocolo remoto gdb existente se adaptaron posteriormente como un parche para el núcleo Linux. Una versión reducida del parche Linux se integró en el núcleo Linux oficial en la versión 2.6.26.
KGDB está disponible para las siguientes arquitecturas en Linux: IA-32 , x86-64 , PowerPC , ARM , MIPS y ESA/390 . Está disponible en todas las arquitecturas compatibles de NetBSD y FreeBSD utilizando únicamente conectividad RS-232.
Amit Kale mantuvo la KGDB de Linux desde 2000 hasta 2004. [2] [3] Desde 2004 hasta 2006, fue mantenida por Linsyssoft Technologies, después de lo cual Jason Wessel en Wind River Systems, Inc. asumió como el mantenedor oficial. Ingo Molnar y Jason Wessel crearon una versión reducida y limpia de KGDB que se llamó "kgdb light" (sin soporte Ethernet y muchos otros trucos). Esta fue la que se fusionó con el kernel 2.6.26. [4] Esta versión de kgdb solo admite conectividad RS-232, utilizando un controlador especial que puede dividir las entradas del depurador y las entradas de la consola de modo que solo se requiere un único puerto serie.
FreeBSD también utiliza un programa llamado kgdb , una utilidad basada en gdb para depurar archivos del núcleo del núcleo. [5] También se puede utilizar para la depuración remota "en vivo" del núcleo, de forma muy similar a la KGDB de Linux, ya sea a través de una conexión en serie o un enlace Firewire. [6]