NAME
ldd —
list dynamic object
dependencies
SYNOPSIS
ldd |
[-o]
[-f
format] program
... |
DESCRIPTION
ldd displays all shared objects that are needed to run the
given program. 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. The first format
argument is used for library objects and defaults to “\t-l%o.%m =>
%p\n”. The second format argument is used for non-library objects and
defaults to “\t%o => %p\n”.
These arguments are interpreted as format strings a la
printf(3) to customize the trace
output and allow
ldd to be operated as a filter more
conveniently. The following conversions can be used:
-
-
- %a
- The main program's name (also known as
“__progname”).
-
-
- %A
- The value of the environment variable
LD_TRACE_LOADED_OBJECTS_PROGNAME
in a.out and the
program name from the argument vector from elf.
-
-
- %o
- The library name.
-
-
- %m
- The library's major version number.
-
-
- %n
- The library's minor version number (a.out only, ignored in
elf).
-
-
- %p
- The full pathname as determined by rtld's
library search rules.
-
-
- %x
- The library's load address
Additionally,
\n and
\t are recognized and
have their usual meaning.
The
-o option is an alias for
-f
%a:-l%o.%m => %p\n, which makes
ldd
behave analogously to
nm -o.
SEE ALSO
ld(1),
ld.elf_so(1),
nm(1),
rtld(1)
HISTORY
A
ldd utility first appeared in SunOS 4.0, it appeared in its
current form in
NetBSD 0.9a.
BUGS
The a.out
ldd actually runs the program it has been requested
to analyze which in specially constructed environments can have security
implications.