2016-05-30 6 views
3

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

Что у меня есть:

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

Что я ищу - CONVINIENT способ трассировки/отладки bootprocess внутри ядра 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, как я, буду modyfy этих файлов).

ответ

1

Основываясь на моем опыте, есть несколько способов:

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

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