我想通过小通使用 gdb 在 arm 板上调试 vmlinux.我需要做什么?



我有一个臂板,我通过电线将其与我的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。 但是,它不像串行端口那样存在于那么多的内核中。 您可以使用内核参数kdbgocsysfs或 magic sysreq 通过串行激活 kgdb。 某些设备(和Linux版本)可能支持JTAG类型的kgdb。

最新更新