2014年1月15日

chap-7 7.5 动态链接相关结构

摘要: 7.5 动态链接相关结构7.5.1 “.interp”段动态链接器的位置既不是由系统配置指定,也不是由环境参数决定,而是由ELF可执行文件决定。在动态链接的ELF可执行文件中,有一个专门的段叫做".interp"段(interp是interpreter的缩写),我们可以用objdump -s program1来查看该段的内容,如下图所示:***图7.5.1***该段的内容很简单,里面保存的就是一个字符串,这个字符串就是可执行文件所需要的动态链接器的路径。在Linux下,可执行文件所需要的动态链接器路径几乎都是/lib/ld-linux.so.2。但是这个文件是一个软链接,在 阅读全文

posted @ 2014-01-15 23:22 Persistence 阅读(239) 评论(0) 推荐(0)

chap-7 7.4 延迟绑定

摘要: 7.3.4 共享模块的全局变量问题当一个模块引用了一个定义在共享对象的全部变量的时候,比如一个共享对象定义了一个全部变量global,而模块module.c中是这么引用的:extern int global;int foo() { global = 1;}当编译器编译module.c时,它无法根据这个上下文判断global是定义在同一个模块的其他目标文件中,还是定义在另外一个共享对象中,即无法判断是否为跨模块间的调用。7.3.5 数据段地址无关性例如有如下代码段:static int a;static int* p = &a;如果共享对象里面有这样一段代码的话,那么指针p的地址就是一个 阅读全文

posted @ 2014-01-15 23:21 Persistence 阅读(370) 评论(0) 推荐(0)

导航