系统调用的工作机制(下)
给MenuOS增加time和time-asm命令
中间过程已省略了,我们所做的只是将menu更新
具体命令如下
rm menu -rf 强制删除
git clone http://github.com/mengning/menu.git 克隆相关信息
cd menu make rootfs
使用gdb跟踪系统调用内核函数sys_time
命令如下
使用gdb跟踪调试内核
qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S # 关于-s和-S选项的说明:
另开一个shell窗口
gdb
(gdb)file linux-3.18.6/vmlinux # 在gdb界面中targe remote之前加载符号表
(gdb)target remote:1234 # 建立gdb和gdbserver之间的连接,按c 让qemu上的Linux继续运行 加载符号表
分析system_call中断处理过程
将getpid添加到menu中
首先在test.c的main函数中添加MenuConfig和相应函数
测试添加成功
调试过程如system_time,故不再重复
从system_call到iret可以用下图表示