使用 gdb 跟踪分析一个系统调用内核函数
实验步骤
1.给MenuOS增加命令
- 输入命令rm -rf menu强制删除当前的menu目录
- 使用git clone重新克隆一个最新版本的menu代码
- 在test.c文件的main函数中增加MenuConfig
- 增加对应的write函数和write_asm函数
- make rootfs
下面是实验结果:
2.使用gdb跟踪系统调用内核函数sys_write
实验步骤:
输入下列命令:
cd ..
qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S //启动并“冰冻”
gdb linux-3.18.6/vmlinux
target remote:1234
在start_kernel处设置断点,然后在gdb中按c会在设置断点的start_kernel处停下来,然后b sys_write设置一个断点,继续执行,下图是实验结果:
分析system_call的执行过程
以write为例,在用户态使用系统调用write,