Jawaban:
Cara lain untuk melihat apa yang dimuat dalam suatu proses adalah dengan melihat /proc/PID/maps
file. Ini menunjukkan semua yang dipetakan ke dalam ruang alamat Anda, termasuk objek bersama yang dipetakan.
sudo grep libcairo.so /proc/*/maps
adalah cara yang bagus untuk menjelajahi semua yang /proc/PID/maps
disebutkan oleh Rich sekaligus. Output sampel:
/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
Selanjutnya awk
dan bash-fu dapat memperbaiki output lebih lanjut.
Metode ini juga menunjukkan perpustakaan dibuka dengan dlopen
, diuji dengan pengaturan minimal ini diretas dengan sleep(1000)
Ubuntu 18.04.
Anda dapat menjalankan perintah berikutnya dengan root dan melihat daftar lengkap,
cat /proc/*/maps | awk '{print $6;}' | grep '\.so' | sort | uniq
Ini untuk pengguna yang tidak memiliki lsof.
lsof
tidak memiliki fungsionalitas yang dibutuhkan.