Для отладки на уровне ядра существует множество отладчиков, ведущих протоколирование и перехват (обычно через последовательный канал), особенно для нового кода. Чрезмерное ведение журнала обычно удаляется, когда код является зрелым, и исправления готовятся для отправки в ядро.
Кроме того, очень распространенный метод отладки или простого понимания кода ядра - трассировка функции, Это похоже на отладочную сборку, G CC добавляет вызов функции для каждой функции в ядре, mcount()
. Для типичной сборки ядра ftrace mcount()
будет компилироваться в NOP, который будет динамически заменяться во время выполнения с помощью утилит ftrace.
Подробнее о дизайне ftrace вы можете прочитать в документации к ядру здесь . Вы можете узнать больше об информации, предоставленной ftrace здесь , но достаточно сказать, что она обширна.