首先切换分支
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