Valgrind和LD_PRELOAD - 无法预加载对象

时间:2011-08-12 21:41:47

标签: linux valgrind ld

我正在尝试运行我的程序,这需要一个库 LD_PRELOAD环境变量,带有valgrind。当我这样做时,我得到了 以下错误:

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

但是,如果我要运行程序 WITHOUT valgrind,它很乐意使用 LD_PRELOAD ed library。

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

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

1 个答案:

答案 0 :(得分:1)

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

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