ИМЯ ldd - выдаёт список зависимостей от общих объектов
ОБЗОР ldd [параметр]… файл…
ОПИСАНИЕ Программа ldd выдаёт список общих объектов (общих библиотек), которые требуются для каждой из заданных в командной строке программы или общего объекта. Пример использования и результат работы:
$ ldd /bin/ls linux-vdso.so.1 (0x00007ffcc3563000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f87e5459000) libcap.so.2 => /lib64/libcap.so.2 (0x00007f87e5254000) libc.so.6 => /lib64/libc.so.6 (0x00007f87e4e92000) libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f87e4c22000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f87e4a1e000) /lib64/ld-linux-x86-64.so.2 (0x00005574bf12e000) libattr.so.1 => /lib64/libattr.so.1 (0x00007f87e4817000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f87e45fa000)
Обычно, ldd вызывает стандартный динамический компоновщик (смотрите ld.so(8)), установив значение переменной окружения LD_TRACE_LOADED_OBJECTS в 1. Это заставляет компоновщик просмотреть динамические зависимости программы и найти (согласно правилам, описанным в ld.so(8)) и загрузить объекты, удовлетворяющие этим зависимостям. Для каждой зависимости ldd показывает расположение подошедшего объекта и адрес (шестнадцатеричный) загрузки (общие зависимости linux-vdso и ld-linux являются специальными; смотрите vdso(7) и ld.so(8)).
Безопасность Однако заметим, что при определённых условиях (например, в программе указан интерпретатор ELF не ld-linux.so) некоторые версии ldd могут попытаться получить информацию о зависимостях посредством запуска программы (что может привести к выполнению какого угодно кода, указанного в интерпретаторе ELF программы и, возможно, выполнению самой программы). Поэтому никогда не запускайте ldd для недоверенных исполняемых файлах, так как это может привести к выполнению произвольного кода. Безопасной альтернативой при работе с недоверенными исполняемыми файлами является команда:
$ objdump -p /путь/к/программе | grep NEEDED
ПАРАМЕТРЫ --version Выдать номер версии ldd.
-v, --verbose Выдать всю информацию, включая, например, информацию о версии символов.
-u, --unused Выдать неиспользуемые явные зависимости. (Начиная с glibc 2.3.4.)
-d, --data-relocs Выполнить перемещения и показать все отсутствующие объекты (только для ELF).
-r, --function-relocs скомпилированы до добавления поддержки ldd в компиляторы. Если вы используете ldd для одной из таких программ, то будет предпринята попытка выполнить программу с argc = 0, и результаты будут непредсказуемы.
СМОТРИТЕ ТАКЖЕ pldd(1), sprof(1), ld.so(8), ldconfig(8)
|