J'ai deux questions liées:
- Comment puis-je voir si une bibliothèque partagée est actuellement chargée? (c.-à-d. à l'échelle du système, agnostique au processus)
- Comment puis-je voir toutes les bibliothèques partagées chargées par un processus?
Vous pouvez faire les deux avec lsof
. Pour voir quels processus ont une bibliothèque ouverte ou mappée, procédez comme suit:
lsof /path/to/lib.so
et pour voir quels fichiers (y compris les bibliothèques partagées) un processus a ouverts et / ou mappés, procédez comme suit:
lsof -p <pid>
Une autre façon de voir ce qui est chargé dans un processus est de regarder le /proc/PID/maps
fichier. Cela montre tout ce qui est mappé dans votre espace d'adressage, y compris les objets partagés mappés dans.
lsof
n'avait pas les fonctionnalités nécessaires.est une belle façon d'explorer tous les éléments
/proc/PID/maps
mentionnés par Rich à la fois. Exemple de sortie:De plus
awk
, bash-fu peut affiner davantage la sortie.Cette méthode montre également les bibliothèques ouvertes avec
dlopen
, testées avec cette configuration minimale piratée avec unsleep(1000)
sur Ubuntu 18.04.la source
Vous pouvez exécuter la commande suivante par root et voir une liste complète,
C'est pour les utilisateurs qui n'ont pas lsof.
la source