Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在 Linux 2.6.32 x86-32 上挂接系统调用。
但是,我发现在系统调用表中,__NR_execve是指向ptregs_execve而不是sys_execve。而且,我找不到ptregs_execve任何地方的函数定义。
__NR_execve
ptregs_execve
sys_execve
谁能帮我澄清ptregs_execve和 sys_execve 之间的区别或关系?我知道对于um架构,ptregs_execve定义为sys_execve. 其他架构呢?
可能更有帮助:
请注意,宏 PTREGSCALL3 在 entry_32.S 中定义。这定义了一个调用 sys_##name 的填充函数。使用 execve 作为参数调用此宏。因此,ptregs_execve 只是一个使用适当参数调用 sys_execve 的 shim。