| .\" Copyright (C) 2014 Michael Kerrisk <mtk.manpages@gmail.com> |
| .\" |
| .\" %%%LICENSE_START(VERBATIM) |
| .\" Permission is granted to make and distribute verbatim copies of this |
| .\" manual provided the copyright notice and this permission notice are |
| .\" preserved on all copies. |
| .\" |
| .\" Permission is granted to copy and distribute modified versions of this |
| .\" manual under the conditions for verbatim copying, provided that the |
| .\" entire resulting derived work is distributed under the terms of a |
| .\" permission notice identical to this one. |
| .\" |
| .\" Since the Linux kernel and libraries are constantly changing, this |
| .\" manual page may be incorrect or out-of-date. The author(s) assume no |
| .\" responsibility for errors or omissions, or for damages resulting from |
| .\" the use of the information contained herein. The author(s) may not |
| .\" have taken the same level of care in the production of this manual, |
| .\" which is licensed free of charge, as they might when working |
| .\" professionally. |
| .\" |
| .\" Formatted or processed versions of this manual, if unaccompanied by |
| .\" the source, must acknowledge the copyright and authors of this work. |
| .\" %%%LICENSE_END |
| .\" |
| .TH PLDD 1 2020-11-01 "GNU" "Linux User Manual" |
| .SH NAME |
| pldd \- display dynamic shared objects linked into a process |
| .SH SYNOPSIS |
| .nf |
| .BI "pldd " "pid" |
| .BI pldd " option" |
| .fi |
| .SH DESCRIPTION |
| The |
| .B pldd |
| 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 a help message and exit. |
| .TP |
| .B \-\-usage |
| Display a short usage message and exit. |
| .TP |
| .BR \-V ", " \-\-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. |
| .SH CONFORMING TO |
| The |
| .B pldd |
| command is not specified by POSIX.1. |
| Some other systems |
| .\" There are man pages on Solaris and HP-UX. |
| have a similar command. |
| .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 |
| 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 \(aq\(ha0x.*0x\(aq\fP |
| .EE |
| .in |
| .SH BUGS |
| From glibc 2.19 to 2.29, |
| .B pldd |
| 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 EXAMPLES |
| .EX |
| $ \fBecho $$\fP # Display PID of shell |
| 1143 |
| $ \fBpldd $$\fP # Display DSOs linked into the shell |
| 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 |
| .EE |
| .SH SEE ALSO |
| .BR ldd (1), |
| .BR lsof (1), |
| .BR dlopen (3), |
| .BR ld.so (8) |