加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – Valgrind和LD_PRELOAD – 对象无法预加载

发布时间:2020-12-13 23:22:15 所属栏目:Linux 来源:网络整理
导读:我正在尝试运行我的程序,这需要一个库 LD_PRELOAD环境变量,带valgrind.当我这样做时,我得到了 以下错误: ERROR: ld.so: object '/path/to/lib/libLIBRARY.so' from LD_PRELOAD cannotbe preloaded: ignored. 但是,如果我要运行没有valgrind的程序,它很乐意
我正在尝试运行我的程序,这需要一个库
LD_PRELOAD环境变量,带valgrind.当我这样做时,我得到了
以下错误:

ERROR: ld.so: object '/path/to/lib/libLIBRARY.so' from LD_PRELOAD cannot
be preloaded: ignored.

但是,如果我要运行没有valgrind的程序,它很乐意使用
LD_PRELOADed库.

为什么会这样?有没有办法解决它?

(P.S.系统是64位科学linux 5,我相信)

解决方法

如果valgrind是64位,并且共享库和应用程序都是32位,则会发生这种情况. valgrind本身无法加载库,但它应该为应用程序本身加载.

编辑:哦,并且……你真的不应该将LD_PRELOAD用于你自己的程序所需的库,只用于调试或覆盖库.而是在可执行文件中嵌入rpath / runpath.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读