3

首先 - 我没有 JTAG 硬件调试器。

我有的:

Pandaboard 和串行 USB 电缆连接到控制台和我的带有 Freebsd 和 GNU/Linux 发行版的计算机。

我在寻找什么 - 在 FreeBSD 内核中跟踪/调试引导过程的便捷方式(我最感兴趣的是这个片段:https ://github.com/freebsd/freebsd/blob/master/sys/arm/arm/locore -v6.Shttps://github.com/freebsd/freebsd/blob/master/sys/arm/arm/mp_machdep.c就像我一样,要修改这些文件)。

4

1 回答 1

1

根据我的经验,有几种方法:

  • KDB/DDB:增加调用kdb_enter("A", "XYZ") 停止处理,通过串口进入DDB交互调试模式。
  • 机器相关 (mach_dep) 代码中的 printf-s
  • bootverbose, BUSDEBUG, VERBOSE_SYSINIT 在机器无关代码中

另外值得一提的是,DDB 代码包含打印寄存器、堆栈跟踪等功能。

于 2016-05-30T12:00:48.317 回答