Risposte:
Un altro modo per vedere cosa viene caricato in un processo è guardare il /proc/PID/maps
file. Questo mostra tutto ciò che è mappato nello spazio degli indirizzi, inclusi gli oggetti condivisi associati.
sudo grep libcairo.so /proc/*/maps
è un bel modo per esplorare tutto ciò che è stato /proc/PID/maps
citato da Rich contemporaneamente. Uscita campione:
/proc/8390/maps:7f0a9afae000-7f0a9b0bc000 r-xp 00000000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8390/maps:7f0a9b0bc000-7f0a9b2bc000 ---p 0010e000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8390/maps:7f0a9b2bc000-7f0a9b2bf000 r--p 0010e000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8390/maps:7f0a9b2bf000-7f0a9b2c0000 rw-p 00111000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9afae000-7f0a9b0bc000 r-xp 00000000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9b0bc000-7f0a9b2bc000 ---p 0010e000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9b2bc000-7f0a9b2bf000 r--p 0010e000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9b2bf000-7f0a9b2c0000 rw-p 00111000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
Inoltre awk
e bash-fu può affinare ulteriormente la produzione.
Questo metodo mostra anche le librerie aperte con dlopen
, testate con questa configurazione minima hackerata con un sleep(1000)
su Ubuntu 18.04.
Puoi eseguire il comando successivo da root e visualizzare un elenco completo,
cat /proc/*/maps | awk '{print $6;}' | grep '\.so' | sort | uniq
Questo è per gli utenti che non hanno lsof.
lsof
non aveva le funzionalità necessarie.