列出 FreeBSD 上进程加载的库

列出 FreeBSD 上进程加载的库

如何列出 FreeBSD 中进程的所有已加载库?在Linux上我可以使用/proc

cat /proc/$pid/maps

在 Solaris 上有pldd

pldd $pid

对于 FreeBSD/proc也适用:

cat /proc/$pid/map

但是,/proc默认情况下未安装。由于这是在客户系统上的自动检测工具中使用的,因此我正在寻找开箱即用的东西(工具或文件)。我假设必须有一个额外的接口来处理 FreeBSD 上的数据,因为top即使没有安装/proc.

答案1

程序统计是你的朋友。

您可以获得特定用途的信息pid

procstat -v $pid

或者,如果您想要所有进程,那么只需:

procstat -va

它产生如下输出:

$ procstat -v 61303
  PID              START                END PRT  RES PRES REF SHD   FL TP PATH
61303           0x400000           0x438000 r-x   46   47   2   0 CN-- vn /usr/local/bin/ksh
61303           0x638000           0x63c000 rw-    4    4   1   0 CN-- df
61303        0x800638000        0x800655000 r-x   29   30 204   0 CN-- vn /libexec/ld-elf.so.1
61303        0x800655000        0x800675000 rw-   23   23   1   0 CN-- df
61303        0x800855000        0x800857000 rw-    2    2   1   0 CN-- df
61303        0x800857000        0x8009cd000 r-x  293  329 218 102 CN-- vn /lib/libc.so.7
61303        0x8009cd000        0x800bcd000 ---    0    0   1   0 CN-- df
61303        0x800bcd000        0x800bd9000 rw-   12    0   1   0 C--- vn /lib/libc.so.7
61303        0x800bd9000        0x800c03000 rw-    8    8   1   0 CN-- df
61303        0x801000000        0x801800000 rw-   26   26   1   0 C--- df
61303     0x7ffffffdf000     0x7ffffffff000 rw-    3    3   1   0 C--D df
61303     0x7ffffffff000     0x800000000000 r-x    1    1 208   0 ---- ph

您可以在下面看到共享库(以及二进制文件本身)PATH

相关内容