Valgrind中的可执行文件动态加载程序会忽略LD_LIBRARY_PATH

时间:2018-10-26 18:21:33

标签: valgrind

  1. LD_LIBRARY_PATH = / otherRoot / lib / valgrind myProg
  2. chroot / otherRoot valgrind myProg

运行第一个命令时,valgrind给我有关剥离的动态链接器的错误,因为它显然未在/ otherRoot / lib中使用该链接器。使用第二个命令,它找到我合适的.so并工作。

作为参考,我在“普通根”和“ otherRoot”中也安装了valgrind。

为什么valgrind / myProg不首先在/ otherRoot / lib中搜索.so?

1 个答案:

答案 0 :(得分:0)

  

运行第一个命令时,valgrind给我有关剥离的动态链接器的错误,因为它显然未在/ otherRoot / lib中使用该链接器。

您的程序使用的动态加载程序不(不能)依赖于LD_LIBRARY_PATH,因为它是动态加载程序加载的 kernel (内核通常不加载)关心环境变量)。更多信息here

chroot之外,有或没有valgrind都使用“错误的”动态加载程序。您可以通过暂停myProg并检查/proc/$PID/maps来确认。