Eu tenho duas perguntas relacionadas:
- Como posso ver se uma biblioteca compartilhada está atualmente carregada? (ou seja, em todo o sistema, independente de processo)
- Como posso ver todas as bibliotecas compartilhadas carregadas por um processo?
Você pode fazer as duas coisas com lsof
. Para ver quais processos têm uma biblioteca aberta ou mapeada, faça:
lsof /path/to/lib.so
e para ver quais arquivos (incluindo bibliotecas compartilhadas) um processo abriu e / ou mapeado, faça:
lsof -p <pid>
Outra maneira de ver o que é carregado em um processo é observando o /proc/PID/maps
arquivo. Isso mostra tudo mapeado em seu espaço de endereço, incluindo objetos compartilhados mapeados.
lsof
não tenha a funcionalidade necessária.é uma ótima maneira de explorar tudo
/proc/PID/maps
mencionado por Rich de uma vez. Saída de amostra:Além disso
awk
e o bash-fu podem refinar ainda mais a saída.Este método também mostra as bibliotecas abertas com
dlopen
, testadas com esta configuração mínima hackeada com umasleep(1000)
no Ubuntu 18.04.fonte
Você pode executar o próximo comando pela raiz e ver uma lista completa,
Isso é para usuários que não têm lsof.
fonte