web-dev-qa-db-ja.com

FreeBSD上のプロセスのロードされたライブラリを一覧表示します

FreeBSDでロードされたプロセスのすべてのライブラリを一覧表示するにはどうすればよいですか? Linuxでは/procを使用できます

cat /proc/$pid/maps

solarisにはplddがあります

pldd $pid

FreeBSDの場合、/procも機能します:

cat /proc/$pid/map

ただし、/procはデフォルトではマウントされていません。これはお客様のシステムの自動検出ツールで使用されているため、箱から出してすぐに機能するもの(ツールまたはファイル)を探しています。 topは、マウントされた/procがなくても機能するため、FreeBSDでデータを処理するための追加のインターフェースが必要だと思います。

4
Thomas Erker

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の下に共有ライブラリ(およびバイナリ自体)が表示されます

4
Claus Andersen