pldd(1)
๐ pldd โ display dynamic shared objects linked into a process ๐
okay bestie, gather round, because this little tool pldd is from the General Commands Manual and it is genuinely such a useful vibe. It's a command, it lives in section 1, and it does exactly one thing but it does it beautifully. Let's get into it ๐ซถ
โจ NAME โจ
pldd โ display dynamic shared objects linked into a process
like... that's the whole job. it shows you the DSOs chillin' inside a process. iconic.
๐ธ SYNOPSIS ๐ธ
pldd pid
pldd option
that's it. no notes. two ways to call it, that's the whole menu ๐
๐ฆ DESCRIPTION ๐ฆ
So the tea is: pldd prints out a list of the dynamic shared objects (DSOs, yes that's the acronym, we love an acronym) that are linked into the process you point at with a specific process ID (PID).
And listen โ this list is thorough. It doesn't just show you the stuff linked at startup, oh no. It also includes the libraries that have been dynamically loaded using dlopen(3) โจ. So the sneaky runtime-loaded ones? Yeah, they're in there too. You get the full picture, no gatekeeping.
๐ OPTIONS ๐
--help,-?โ shows you a help message and then dips. bye ๐--usageโ shows a short usage message and exits. like help but lowkey on a diet.--version,-Vโ shows the program version info and exits. so you know exactly what you're working with ๐
๐ EXIT STATUS ๐
pay attention bestie, this part matters:
0โ success, we ate, no crumbs1โ the process you named doesn't exist, OR you don't have permission to access its dynamic shared object list, OR you supplied no command-line arguments at all. any of those three and it's a 1, straight up.64โ you gave it an invalid option. that's a 64. oops ๐
โญ VERSIONS โญ
some other systems have a similar command. so if you're hopping between platforms, mind the vibe check, it's not identical everywhere.
๐ STANDARDS ๐
None. that's the whole section. nothing. zero. we're unstandardized and unbothered ๐คทโโ๏ธ
๐ HISTORY ๐
glibc 2.15. that's where it was born. mark the calendar ๐
๐ง NOTES ๐ง
ok so there's more than one way to get this info, and the manpage wants you to know:
the command
lsof -p PID
also shows output that includes the dynamic shared objects that are linked into a process. (not exactly the same output, but you can see the DSOs in there ๐)
And also โ gdb(1) has an info shared command that shows the shared libraries being used by a process. So you can get output similar to pldd using a command like the following one, which monitors the process with the specified pid:
$ gdb -ex "set confirm off" \
-ex "set height 0" \
-ex "info shared" \
-ex "quit" \
-p $pid \
| grep '^0x.*0x';
like, that's a whole pipeline, but it works ๐
๐ญ BUGS ๐ญ
no because this is genuinely tragic: from glibc 2.19 to glibc 2.29, pldd was broken โ it just hung when you executed it. nothing happened. forever. the audacity ๐
It got fixed in glibc 2.30, and the fix has been backported to earlier glibc versions in some distributions. so depending on your distro you might already be saved. prayers up ๐ซถ
๐ฅ EXAMPLES ๐ฅ
here's the iconic demo, live:
$ echo $$; # Display PID of shell
1143
$ pldd $$; # 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
see how $$ gives you the shell's own PID and then you just hand that straight to pldd? chef's kiss. the DSOs just come tumbling out โจ
๐ SEE ALSO ๐
and that's the whole page bestie!! ๐ This particular copy of pldd(1) comes from Linux man-pages 6.20, dated 2026-02-08 โ so if you're reading this version, that's who to thank. now go inspect some processes, you're literally the main character of debugging ๐
๐
๐ฆ where this page comes from
- arch rolling: man-pages 6.20-1 ยท BSD-2-Clause AND BSD-3-Clause AND BSD-4.3TAHOE AND BSD-4-Clause-UC AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-linking-exception AND LGPL-3.0-or-later AND LicenseRef-Public-Domain AND LicenseRef-UltraPermissive AND Linux-man-pages-1-para AND Linux-man-pages-copyleft AND Linux-man-pages-copyleft-2-para AND Linux-man-pages-copyleft-var AND MIT AND Spencer-94
- nixpkgs unstable: man-pages 6.20
- ๐ the page's license: Linux-man-pages-copyleft
- Copyright 2014, Michael Kerrisk <mtk.manpages@gmail.com>
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms