开发工具:
文件大小: 1mb
下载次数: 0
上传时间: 2010-11-19
详细说明: linux源代码分析与研究,非常详细。 例如: 请看 sys_clone 的代码,其中 2703 行 2703 clone_flags = regs.ebx; clone_flags应该对应regs.edx,而在这里却对应 regs.ebx。 通过阅读接口函数 int __clone(int(*fn)(void *arg),void *child_stack,int flags,void *arg); 的具体代码(该函数位置在 glibc/sysdeps/unix/sysv/linux/i386/clone.S)可知,程序 在执行上述接口语句时,并没有调用 syscallN()宏进入 system_call,而是直接通过 接口函数进入 system_call 的。在接口函数中,fn 和 arg 被压到 child_stack 中,传 给 kernel 的只有两个参数,ebx=flags,ecx=child_stack-8(因为 fn 和 arg 被压到这 里)函数代码如下: /* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg); */ #define PARMS LINKAGE #define FUNC PARMS /* FUNC为fn在堆栈中相对于(esp 指向的)栈顶的偏移量*/ #define STACK FUNC+4 /* STACK为child_stack在堆栈中相对于(esp指向的)栈顶的偏移量*/ #define FLAGS STACK+PTR_SIZE /* FLAGS为flag 在堆栈中相对于(esp指向的)栈顶的偏移量*/ 38 ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.