Solaris下有个动态链接器,就是ld: /usr/lib/ld.so.1
它提供了一个非常酷的特性,Interposition。
默认情况下,ld会根据symbol搜索相应的静态库文件并动态倒入该库文件。
如果通过LD_PRELOAD设置库文件后,该库文件就会成为一个interposer,ld会先从interposer搜索相应的symbol,
然后再搜索其它相应的系统库文件。
这个LD_PRELOAD提供的功能对一些应用,如不能修改代码的情况下,就非常方便。
比如我们要看程序memory分配,可以参考这个网页:http://developers.sun.com/solaris/articles/lib_interposers.html
里面具体介绍了如何动态分析memory分配。
当然ld也支持多个interposer,只需在LD_PRELOAD设置时用冒号(:)隔开。
----
64 位系统则需要分别为32位和64位程序设置:LD_PRELOAD_32, LD_PRELOAD_64
本文介绍Solaris系统中动态链接器ld的功能及其Interposition特性。通过设置LD_PRELOAD环境变量,可以在不修改应用程序代码的情况下,实现对内存分配等行为的动态分析。此外,还支持同时使用多个interposer。
197

被折叠的 条评论
为什么被折叠?



