Lista de bibliotecas carregadas de um processo no FreeBSD

4

Como posso listar todas as bibliotecas carregadas de um processo no FreeBSD? No Linux eu posso usar /proc

cat /proc/$pid/maps

no Solaris há pldd

pldd $pid

Para o FreeBSD /proc também funciona:

cat /proc/$pid/map

no entanto, /proc não é montado por padrão. Como isso é usado em uma ferramenta de autodetecção em sistemas de clientes, estou procurando por algo (ferramenta ou arquivo) que funcione fora da caixa. Estou assumindo que deve haver uma interface adicional para processar dados no FreeBSD porque top funciona mesmo sem o /proc montado.

    
por Thomas Erker 11.09.2015 / 11:03

1 resposta

4

procstat é seu amigo.

Você obtém as informações de um pid específico usando:

procstat -v $pid

Ou se você quiser para todos os processos, simplesmente:

procstat -va

Produz uma saída como esta:

$ 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

Você vê as bibliotecas compartilhadas (e o próprio binário) em PATH

    
por 11.09.2015 / 12:56