注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gmd20的个人空间

// 编程和生活

 
 
 

日志

 
 

有意思的LD_PRELOAD环境变量  

2013-01-30 11:37:09|  分类: linux相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

微博看到腾讯的工程师,说用这个变量来覆盖默认的库里面的gettimeofday函数,就看了一下。


这个环境变量比较有意思,可以让你的库里面的导出函数预先加载,然后其他程序需要这个导出符号的时候,就用的你的这个函数了,后面加载的libc的导出函数就被覆盖了。这样就相当于重写了这个导出函数的实现了,即时没有那个动态库的源码。而且是动态替换的,不需要重新编译。


http://linux.die.net/man/8/ld.so  的说明

LD_PRELOADA whitespace-separated list of additional, user-specified, ELF shared libraries to be loaded before all others. This can be used to selectively override functions in other shared libraries. For set-user-ID/set-group-ID ELF binaries, only libraries in the standard search directories that are also set-user-ID will be loaded.


tcmalloc举了一个例子,不用重新编译你的程序,用LD_PRELOAD 让能让让你的程序自动加载时链接到 tcmalloc中的malloc函数去,非常方便。

http://goog-perftools.sourceforge.net/doc/tcmalloc.html

---------------------

You can use tcmalloc in applications you didn't compile yourself, by using LD_PRELOAD:

$ LD_PRELOAD="/usr/lib/libtcmalloc.so" 

LD_PRELOAD is tricky, and we don't necessarily recommend this mode of usage.

--------------------------------------


Fun with LD_PRELOAD  这个文档也不错。

http://lca2009.linux.org.au/slides/172.pdf



国人写的,也有个例子

警惕UNIX下的LD_PRELOAD环境变量

http://blog.csdn.net/haoel/article/details/1602108


  评论这张
 
阅读(519)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017