LDD(1) | MidnightBSD General Commands Manual | LDD(1) |
ldd
— list dynamic
object dependencies
ldd |
[-a ] [-v ]
[-f format
[-f format]]
program ... |
The ldd
utility displays all shared
objects that are needed to run the given program or to load the given shared
object. Contrary to nm(1),
the list includes “indirect” dependencies that are the result
of needed shared objects which themselves depend on yet other shared
objects.
Zero, one or two -f
options may be given.
The argument is a format string passed to
rtld(1) and allows
customization of ldd
's output. If one is given, it
sets LD_TRACE_LOADED_OBJECTS_FMT1
. If two are given,
they set LD_TRACE_LOADED_OBJECTS_FMT1
and
LD_TRACE_LOADED_OBJECTS_FMT2
, respectively. See
rtld(1) for details,
including a list of recognized conversion characters.
The -a
option displays the list of all
objects that are needed by each loaded object. This option does not work
with a.out(5)
binaries.
The -v
option displays a verbose listing
of the dynamic linking headers encoded in the executable. See the source
code and include files for the definitive meaning of all the fields.
ldd
lists the dependencies of an
executable by setting
rtld(1) environment
variables and running the executable in a child process. If the executable
is corrupt or invalid, ldd
may therefore fail
without providing any diagnostic error messages.
The following is an example of a shell pipeline which uses the
-f
option. It will print a report of all ELF
binaries in the current directory, which link against libc.so.6:
find . -type f | xargs -n1 file -F '
' | grep 'ELF.*dynamically' | cut -f1 -d' ' | xargs ldd -f '%A %o\n' | grep
libc.so.6
A ldd
utility first appeared in SunOS 4.0,
it appeared in its current form in FreeBSD 1.1.
The -v
support is based on code written by
John Polstra
<jdp@polstra.com>
March 21, 2023 | midnightbsd-3.1 |