Динамический загрузчик исполняемого файла в Valgrind, игнорирующий LD_LIBRARY_PATH - PullRequest
0 голосов
/ 26 октября 2018
  1. LD_LIBRARY_PATH = / otherRoot / lib / valgrind myProg
  2. chroot / otherRoot valgrind myProg

При запуске первой команды valgrind выдает мне ошибки об удаленном динамическом компоновщике, потому что он явно не использует тот, что находится в / otherRoot / lib. Используя вторую команду, он находит мой соответствующий .so и работает.

Для справки, у меня установлен valgrind в "обычном корне" и "otherRoot".

Почему valgrind / myProg не ищет файл .so в / otherRoot / lib первым?

1 Ответ

0 голосов
/ 28 октября 2018

При запуске первой команды valgrind выдаёт мне ошибки об удаленном динамическом компоновщике, потому что он явно не использует тот, что находится в /otherRoot/lib.

Динамический загрузчик, используемый вашей программой, не зависит (не может) от LD_LIBRARY_PATH, потому что это ядро ​​ загружает динамический загрузчик (а ядру, как правило, нет дела до среды переменные). Подробнее здесь .

За пределами chroot «неправильный» динамический загрузчик используется с или без valgrind. Вы можете подтвердить это, приостановив myProg и проверив /proc/$PID/maps на это.

...