“郭孟琦 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”
继续上周的内容,首先利用gdb跟踪系统调用system_call的处理过程。
这里我继续使用上周编写的uname。
首先是为menuOS 添加uname的命令,这一过程很简单直接在test.c中添加函数调用,并将uname和uname-asm函数的代码粘贴过来就可以了。
本文介绍了如何使用gdb跟踪Linux系统调用,特别是system_call处理过程。通过实例展示了在menuOS中添加uname命令,并尝试调试sys_newuname。在调试过程中遇到"Cannot find bounds of current function"的问题,分析了从system_call到iret的流程,涉及到用户态到内核态的转换、寄存器保存、中断服务程序执行以及可能的进程调度。最后,讨论了系统调用与一般中断处理机制的区别。
“郭孟琦 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”
继续上周的内容,首先利用gdb跟踪系统调用system_call的处理过程。
这里我继续使用上周编写的uname。
首先是为menuOS 添加uname的命令,这一过程很简单直接在test.c中添加函数调用,并将uname和uname-asm函数的代码粘贴过来就可以了。

被折叠的 条评论
为什么被折叠?