FreeBSDでロードされたプロセスのすべてのライブラリを一覧表示するにはどうすればよいですか? Linuxでは/proc
を使用できます
cat /proc/$pid/maps
solarisにはpldd
があります
pldd $pid
FreeBSDの場合、/proc
も機能します:
cat /proc/$pid/map
ただし、/proc
はデフォルトではマウントされていません。これはお客様のシステムの自動検出ツールで使用されているため、箱から出してすぐに機能するもの(ツールまたはファイル)を探しています。 top
は、マウントされた/proc
がなくても機能するため、FreeBSDでデータを処理するための追加のインターフェースが必要だと思います。
procstat はあなたの友達です。
以下を使用して、特定の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
の下に共有ライブラリ(およびバイナリ自体)が表示されます