LinuxCommandLibrary

pldd

List shared libraries linked to a process

SYNOPSIS

pldd pid

PARAMETERS

pid
    The process ID of the process you want to examine. This is a required argument.

DESCRIPTION

The pldd command, short for 'process list dynamic dependencies,' is a utility in Linux systems used to display the shared libraries a specified process has loaded. This is achieved by examining the process's memory map. It provides valuable insights into the runtime environment of a process, showcasing which shared libraries (e.g., libc, libpthread) are actively being utilized. This is crucial for debugging, performance analysis, and understanding the dependencies required by a particular application. By identifying the shared libraries used, pldd can assist in resolving dependency issues, identifying potential conflicts between libraries, and ensuring that the necessary libraries are available and correctly linked to the process. The tool relies on the /proc filesystem to gather information about running processes, accessing memory maps and related data to construct the list of dependencies.
Note: pldd isn't universally available and is often part of the `glibc` package or a similar development package. If not found, ensure proper installation.

CAVEATS

Requires appropriate privileges to inspect the target process. Typically requires the user running the command to either own the process or have root privileges. The output may vary depending on the specific system configuration and the libraries linked to the process.

OUTPUT INTERPRETATION

The output of pldd typically includes the full path to each shared library and the memory address where it is loaded.
This allows for identifying the specific version of a library being used and its location in memory.

EXAMPLE

To list the shared libraries used by process with ID 1234, you would use:
pldd 1234

HISTORY

The pldd command has been available as part of glibc/binutils toolchains for many years. It's specifically useful in cases when dynamic linking is used and you need to understand the runtime dependencies of a running process. Its usage has remained consistent, focused on quick inspection of loaded shared objects.

SEE ALSO

lsof(8), ldd(1), pmap(1), ps(1)

Copied to clipboard