我有一个臂板,我通过电线将其与我的linux(主机)系统连接。我在 arm 处理器中插入带有 vmlinux.uimg 的 sd 卡,并在主机系统上使用minicom。现在我想使用 gdb 在手臂板上调试 vmlinux。我需要做什么?我尝试在minicom上使用gdbserver,在主机上使用gdb。但我不知道它到底是如何工作的...我应该在哪里复制 vmlinux 以及如何调试...
完整的答案取决于您的 Linux 版本、开发和目标设置。 这里有一些研究链接,
- GDB 内核调试 KGDB
- 、KGDB 文档手册或格式化文档手册
您需要使用 KGDB 支持配置内核,并且可以使用控制台作为从开发计算机控制KGDB的链接。您需要开发计算机上的 vmlinux 对象文件的副本;如果它也是构建机器,则很容易。 GDB 有脚本可以访问内核中的便捷信息。 这是 GDB 内核调试链接中的信息。
您不使用gdbserver
;这是针对用户空间的 Linux 进程。 用于调试内核的工具是kgdb,这需要将代码放入内核中。 通常,程序gdbserver
使用内核工具来控制进程。 这不适用于内核本身。
可能并非所有串行端口都支持 kgdb。 某些版本的 Linux 允许通过网络使用 kgdb。 但是,它不像串行端口那样存在于那么多的内核中。 您可以使用内核参数kdbgoc
、sysfs或 magic sysreq 通过串行激活 kgdb。 某些设备(和Linux版本)可能支持JTAG类型的kgdb。