Для ядер> 2.6.26 (т. Е. После мая 2008 г.) предпочтительным способом, вероятно, является использование «kgdb light» (не путать с его предком kgdb, доступным в виде набора патчей для ядра).
«kgdb light» теперь является частью ядра (например, по умолчанию в современных ядрах Ubuntu), и его возможности быстро улучшаются (над этим работает Джейсон Вессель - возможно, ключ Google).
Недостаток: вам нужны две машины: одна, которую вы отлаживаете, и машина разработки (хост), на которой работает gdb. В настоящее время эти две машины могут быть связаны только через последовательный канал.
Программа kgdb работает на целевой машине, где она обрабатывает точки останова, пошаговое выполнение и т. д., а протокол удаленной отладки используется для связи с машиной разработки.
GDB работает на компьютере разработчика, где он обрабатывает пользовательский интерфейс.
Адаптер USB-to-serial работает нормально на компьютере разработчика, но в настоящее время вам нужен настоящий UART на целевой машине - и это уже не так часто на современном оборудовании.
Документация (краткая) kgdb находится в исходниках ядра, в
Документация / DocBook
Я предлагаю вам поглядеть на "килограмм света" для полной истории.
Опять же, не путайте свет килограммов и килограммов, они объединяются в поиске в Google, но в основном это разные животные. В частности, информация с linsyssoft.com относится к «предку» kgdb, поэтому попробуйте выполнить следующие запросы:
kgdb module debugging -"linsyssoft.com" -site:linsyssoft.com
и откажитесь от статей до мая 2008 / 2.6.26 ядра.
Наконец, для отладки модуля вам нужно вручную загрузить символы модуля на машине разработчика для всего кода и разделов, которые вас интересуют. Это слишком долго, чтобы здесь обращаться, но некоторые подсказки там , там и там.
Суть в том, что kgdb - очень приятное улучшение, но не ожидайте, что эта поездка будет такой же простой, как запуск gdb в режиме пользователя. Еще. :)