Risposte:
Un altro modo per vedere cosa viene caricato in un processo è guardare il /proc/PID/mapsfile. 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 awke 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.
lsofnon aveva le funzionalità necessarie.