比如我想要找到execve
在内核中的实现代码。我在源码中搜索sys_execve
,在代码中只能找到头文件声明,系统调用注册的相关代码,找不到函数体。其他系统调用也都有这个问题。请问该如何寻找呢?
搜索 do_execve 看看,我也是 google 到的。
linux-4.1 fs/exec.c:1704
SYSCALL_DEFINE3 (execve,
const char __user *, filename,
const char __user *const __user *, argv,
const char __user *const __user *, envp )
{
return do_execve (getname (filename ), argv, envp );
}
google: execve site:lxr.free-electrons.com/source
make ARCH=x86 -j2 tags cscope
vim -t sys_execve
arm 的我知道: arch/arm/kernel/call.S 里面有系统调用列表,然后你就可以在内核根目录 ctags -R ,在 vim 里面 tags
了。