Отладка без логов и инструментов? - PullRequest
0 голосов
/ 20 апреля 2020

Я просматривал исходный код raspberry pi на git и понял, что у них нет журналов и printf в исходном коде. Существуют ли какие-либо другие методы отладки, кроме средств ведения журналов и отладки (gdb, dbx), которые используются в таком сценарии ios?

1 Ответ

1 голос
/ 21 апреля 2020

Для отладки на уровне ядра существует множество отладчиков, ведущих протоколирование и перехват (обычно через последовательный канал), особенно для нового кода. Чрезмерное ведение журнала обычно удаляется, когда код является зрелым, и исправления готовятся для отправки в ядро.

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

Подробнее о дизайне ftrace вы можете прочитать в документации к ядру здесь . Вы можете узнать больше об информации, предоставленной ftrace здесь , но достаточно сказать, что она обширна.

...