1

我在 Linux 2.6.32 x86-32 上挂接系统调用。

但是,我发现在系统调用表中__NR_execve是指向ptregs_execve而不是sys_execve。而且,我找不到ptregs_execve任何地方的函数定义。

谁能帮我澄清ptregs_execve和 sys_execve 之间的区别或关系?我知道对于um架构,ptregs_execve定义为sys_execve. 其他架构呢?

4

1 回答 1

2

可能更有帮助:

请注意,宏 PTREGSCALL3 在 entry_32.S 中定义。这定义了一个调用 sys_##name 的填充函数。使用 execve 作为参数调用此宏。因此,ptregs_execve 只是一个使用适当参数调用 sys_execve 的 shim。

于 2013-06-28T15:38:30.047 回答