小智 58
您可以使用lsof
. 要查看哪些进程打开或映射了库,请执行以下操作:
lsof /path/to/lib.so
Run Code Online (Sandbox Code Playgroud)
并查看进程打开和/或映射了哪些文件(包括共享库),请执行以下操作:
lsof -p <pid>
Run Code Online (Sandbox Code Playgroud)
sudo grep libcairo.so /proc/*/maps
Run Code Online (Sandbox Code Playgroud)
是一次探索/proc/PID/maps
Rich 提到的所有内容的好方法。示例输出:
/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
Run Code Online (Sandbox Code Playgroud)
进一步awk
和 bash-fu 可以进一步细化输出。
此方法还示出了具有打开的库dlopen
,以测试该最小设置入侵了一个sleep(1000)
在Ubuntu 18.04。
您可以通过 root 运行下一个命令并查看完整列表,
cat /proc/*/maps | awk '{print $6;}' | grep '\.so' | sort | uniq
Run Code Online (Sandbox Code Playgroud)
这适用于没有 lsof 的用户。
归档时间: |
|
查看次数: |
62359 次 |
最近记录: |