КГДБ


KGDBотладчик для ядра Linux и ядер NetBSD и FreeBSD . Для этого требуются две машины, подключенные через последовательное соединение. Последовательное соединение может быть либо через интерфейс RS-232 с использованием нуль-модемного кабеля, либо через сетевой протокол UDP /IP (KGDB через Ethernet, KGDBoE). Целевая машина (отлаживаемая) запускает исправленное ядро, а другая (хост) машина запускает gdb . Удаленный протокол GDB используется между двумя машинами.

KGDB был реализован как часть ядра NetBSD в 1997 году [1] и FreeBSD в версии 2.2. Концепция и существующий удаленный протокол gdb позже были адаптированы как патч для ядра Linux. Уменьшенная версия исправления Linux была интегрирована в официальное ядро ​​Linux версии 2.6.26.

KGDB доступен для следующих архитектур под Linux: x86 , x86-64 , PowerPC , ARM , MIPS и S390 . Он доступен на всех поддерживаемых архитектурах NetBSD и FreeBSD, использующих только подключение RS-232.

Амит Кейл поддерживал Linux KGDB с 2000 по 2004 год. [2] [3] С 2004 по 2006 год она поддерживалась Linsyssoft Technologies, после чего Джейсон Вессель из Wind River Systems, Inc. стал официальным сопровождающим. Инго Молнар и Джейсон Вессель создали урезанную и очищенную версию KGDB, которая получила название «kgdb light» (без поддержки Ethernet и многих других хаков). Это было то, что было объединено с ядром 2.6.26. [4] Эта версия kgdb поддерживает только подключение RS-232 с использованием специального драйвера, который может разделять входные данные отладчика и консольные входы, так что требуется только один последовательный порт.

Программа с именем kgdb также используется FreeBSD . Это утилита на основе gdb для отладки файлов ядра ядра. [5] Его также можно использовать для удаленной «живой» отладки ядра, почти так же, как Linux KGDB, либо через последовательное соединение, либо через канал FireWire. [6]