我有一个ARM板,我通过一根电线把它和我的Linux(主机)系统连接起来。我在ARM处理器中插入带有vmlinux.uimg的SD卡,并在主机系统上使用Minicom。现在我想使用gdb在arm板上调试vmlinux。我需要做什么?我尝试在minicom上使用gdbserver,在主机上使用gdb。但我不知道它到底是怎么工作的…我应该在哪里复制vmlinux以及如何调试…
最佳答案
完整的答案取决于您的Linux版本、开发和目标设置。以下是一些研究链接,
gdb kernel debugging
kgdb、kgdb docbook或formatted docbook
您需要使用kgdb支持配置内核,并且可以将控制台用作从开发机器控制kgdb的链接。您需要在开发机器上复制vmlinux对象文件;如果它也是构建机器,则很容易。gdb有脚本来访问内核中的便利信息。这是gdb内核调试链接中的信息。
您不使用gdbserver
;这是用于用户空间Linux进程的。调试内核的工具是kgdb,这需要将代码放入内核中。通常,程序gdbserver
使用内核工具来控制进程。这对内核本身不起作用。
可能并非所有串行端口都支持kgdb。Linux的某些版本允许kgdb over the network。但是,它在内核中的数量没有串行端口多。您可以使用内核参数kdbgoc
、sysfs或magic sysreq通过串行激活kgdb。某些设备(和Linux版本)可能支持JTAG类型KGDB。