如何列出 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