我试图在Qemu上模仿cavium的mips64 linux内核,我目前在使用模式init代码上有一些问题,我想调试init.i正在使用命令行中的-s -S选项启动Qemu,并使用命令运行gdb。
调试器/OCTEON-SDK/tools/bin/mips64-octeon-linux-gnu-gdb /OCTEON-SDK/linux/kernel_2.6/linux/vmlinux
,然后用命令附加gdb。
目标远程本地主机:1234
gdb目前只显示在内核空间中运行的指令。
我想问的是,是否有任何方法可以一步一步地调试用户模式init和库指令,就像在内核空间中一样?例如,如果从init发出printf,那么我想知道库中正在执行哪些指令,以及控件是如何返回给内核的?
发布于 2017-10-08 21:13:54
我已经成功地使用了在:/sbin/init中描述的过程来调试BusyBox的/sbin/init
你唯一需要记住的额外的事情是:
/sbin/init只是一个指向busybox的符号链接,所以您必须使用/bin/busybox作为对象文件。/sbin/init的“主”函数实际上是init_main,遵循BusyBox的惯例,将每个伪可执行文件调用为<exec>_main。这是有点片状,但大部分只是工作。
https://stackoverflow.com/questions/16273614
复制相似问题