Что я могу использовать для отладки/отслеживания пошагового процесса загрузки ядра Freebsd на Pandaboard?

Начнем с того, что у меня нет аппаратного отладчика JTAG.

Что я имею:

Pandaboard и последовательный USB-кабель для подключения к консоли и моему компьютеру с дистрибутивом Freebsd и GNU/Linux.

Что я ищу - удобный способ трассировки/отладки процесса загрузки внутри ядра FreeBSD (меня больше всего интересует этот фрагмент: https://github.com/freebsd/freebsd/blob/master/sys/arm/arm/locore-v6.S и https://github.com/freebsd/freebsd/blob/master/sys/arm/arm/mp_machdep.c как я собираюсь модифицировать эти файлы).


person csstudent    schedule 30.05.2016    source источник


Ответы (1)


Исходя из моего опыта, есть несколько способов:

  • KDB/DDB: добавьте вызов kdb_enter("A", "XYZ"), чтобы остановить обработку и войти в интерактивный режим отладки DDB через последовательный порт.
  • printf-s в машинно-зависимом (mach_dep) коде
  • bootverbose, BUSDEBUG, VERBOSE_SYSINIT в машинно-независимом коде

Также стоит отметить, что код DDB содержит функции для печати регистров, трассировки стека и т. д.

person Michael Zhilin    schedule 30.05.2016