.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH PLDD 1 2014-09-27 "GNU" "Linux User Manual"
+.TH PLDD 1 2019-08-02 "GNU" "Linux User Manual"
.SH NAME
pldd \- display dynamic shared objects linked into a process
.SH SYNOPSIS
.SH DESCRIPTION
The
.B pldd
-command displays a list of the dynamic shared objects that are
-linked into the process with the specified process ID.
+command displays a list of the dynamic shared objects (DSOs) that are
+linked into the process with the specified process ID (PID).
The list includes the libraries that have been dynamically loaded using
.BR dlopen (3).
.SH OPTIONS
.TP
.BR \-? ", " \-\-help
-Display program help message.
+Display a help message and exit.
.TP
-.BR \-\-usage
-Display a short usage message.
+.B \-\-usage
+Display a short usage message and exit.
.TP
.BR \-V ", " \-\-version
-Display the program version.
+Display program version information and exit.
+.SH EXIT STATUS
+On success,
+.B pldd
+exits with the status 0.
+If the specified process does not exist,
+the user does not have permission to access
+its dynamic shared object list,
+or no command-line arguments are supplied,
+.B pldd
+exists with a status of 1.
+If given an invalid option, it exits with the status 64.
.SH VERSIONS
.B pldd
is available since glibc 2.15.
Some other systems
.\" There are man pages on Solaris and HP-UX.
have a similar command.
-.SH EXIT STATUS
-On success,
+.SH NOTES
+The command
+.PP
+.in +4n
+.EX
+lsof \-p PID
+.EE
+.in
+.PP
+also shows output that includes the dynamic shared objects
+that are linked into a process.
+.PP
+The
+.BR gdb (1)
+.I "info shared"
+command also shows the shared libraries being used by a process,
+so that one can obtain similar output to
.B pldd
-exits with the status 0.
-If the specified process does not exist,
-the user does not have permission to access
-its dynamic shared object list,
-or no command-line arguments are supplied,
+using a command such as the following
+(to monitor the process with the specified
+.IR pid ):
+.PP
+.in +4n
+.EX
+$ \fBgdb \-ex "set confirm off" \-ex "set height 0" \-ex "info shared" \e\fP
+ \fB\-ex "quit" \-p $pid | grep '^0x.*0x'\fP
+.EE
+.in
+.SH BUGS
+From glibc 2.19 to 2.29,
.B pldd
-exists with a status of 1.
-If given an invalid option, it exits with the status 64.
+was broken: it just hung when executed.
+.\" glibc commit 1a4c27355e146b6d8cc6487b998462c7fdd1048f
+This problem was fixed in glibc 2.30, and the fix has been backported
+to earlier glibc versions in some distributions.
.SH EXAMPLE
-.nf
+.EX
$ \fBecho $$\fP # Display PID of shell
1143
$ \fBpldd $$\fP # Display DSOs linked into the shell
-1143: /usr/bin/bash
+1143: /usr/bin/bash
linux\-vdso.so.1
/lib64/libtinfo.so.5
/lib64/libdl.so.2
/lib64/libc.so.6
/lib64/ld\-linux\-x86\-64.so.2
/lib64/libnss_files.so.2
-.fi
-.SH NOTES
-The command
-
- lsof -p PID
-
-also shows output that includes the dynamic shared objects
-that are linked into a process.
+.EE
.SH SEE ALSO
.BR ldd (1),
.BR lsof (1),