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