Valgrind и LD_PRELOAD - объект не может быть предварительно загружен - PullRequest
4 голосов
/ 13 августа 2011

Я пытаюсь запустить мою программу, для которой требуется, чтобы библиотека находилась в переменной окружения LD_PRELOAD, с valgrind.Когда я делаю это, я получаю следующую ошибку:

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

Однако, если мне нужно запустить программу БЕЗ valgrind, она с радостью использует библиотеку LD_PRELOAD ed.

Почему это так?И есть ли способ это исправить?

(PS Система 64-битная научная linux 5, я считаю)

1 Ответ

1 голос
/ 20 мая 2012

Это может произойти, если valgrind является 64-разрядным, а совместно используемая библиотека и приложение являются 32-разрядными.Сам Valgrind не может загрузить библиотеку, но он должен загрузить само приложение.

Редактировать: Да, и ... вам действительно не следует использовать LD_PRELOAD для необходимых библиотек для ваших собственных программ, только дляотладка или иное переопределение библиотек.Вместо этого вставьте rpath / runpath в исполняемый файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...