我有一个 ARM 板,我通过电线将它连接到我的 linux(主机)系统。我在 arm 处理器中插入带有 vmlinux.uimg 的 sd 卡,并在主机系统上使用 minicom。现在我想使用 gdb 在 arm board 上调试 vmlinux。我需要做什么?我尝试在 minicom 上使用 gdbserver,在主机上使用 gdb。但是我不知道它到底是如何工作的...我应该在哪里复制vmlinux以及我应该如何调试...
最佳答案
完整的答案取决于您的 Linux 版本、开发和目标设置。这里有一些研究链接,
您需要为您的内核配置KGDB 支持,您可以使用控制台作为链接来从您的开发机器控制KGDB。您需要开发机器上的 vmlinux 目标文件的副本;如果它也是构建机器,则很容易。 GDB 有脚本来访问内核中的方便信息。这是GDB内核调试链接中的信息。
您没有使用gdbserver
;这是针对用户空间 linux 进程的。调试内核的工具是kgdb,这需要将代码放入内核。通常 gdbserver
程序使用内核设施来控制进程。这不适用于内核本身。
可能并非所有串口都支持 kgdb。某些版本的 Linux 允许 kgdb over the network .然而,它并不像串口那样出现在那么多的内核中。您可以使用内核参数 kdbgoc
、sysfs 或 magic sysreq 通过串行方式激活 kgdb。某些设备(和 Linux 版本)可能支持 JTAG 类型 kgdb。
关于linux - 我想通过 minicom 使用 gdb 在 arm board 上调试 vmlinux。我需要做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49109162/