3.Lab Two —— system calls

首先切换分支

git fetch
git checkout syscall

system call trace

添加一个系统调用跟踪功能

例如跟踪fork系统调用,可以使用trace 1<< SYS_fork ,其中SYS_fork是kernel/syscall.h中的系统调用编号

例如下列例子:

$ trace 32 grep hello README
3: syscall read -> 1023
3: syscall read -> 966
3: syscall read -> 70
3: syscall read -> 0
$
$ trace 2147483647 grep hello README
4: syscall trace -> 0
4: syscall exec -> 3
4: syscall open -> 3
4: syscall read -> 1023
4: syscall read -> 966
4: syscall read -> 70
4: syscall read -> 0
4: syscall close -> 0
​

例如第一个是32,也是1 << SYS_read

1.在Makefile中的UPROGS中添加$U/_trace

2.将系统调用原型添加到user/user.h中

3.将存根添加到user/usys.pl,这段perl调用makefile文件调用,生成实际的系统调用存根user/usys.S

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值