温馨提示×

怎样查看进程依赖库

小樊
92
2026-07-21 20:29:45
栏目: 编程语言

查看进程依赖的库(动态链接库),不同操作系统方法不一样,下面按常见平台给你总结。


一、Linux 下查看进程依赖库

✅ 方法 1:ldd(查看可执行文件或库)

适合查看程序本身依赖哪些 so 库

ldd /path/to/program

示例:

ldd /bin/ls

输出类似:

libc.so.6 => /lib64/libc.so.6
libselinux.so.1 => /lib64/libselinux.so.1

⚠️ 注意:

  • ldd 不能安全用于不可信程序
  • 只能看静态依赖,不能看运行时动态加载的库

✅ 方法 2:pmap(查看运行中进程)

适合查看进程当前加载了哪些库

pmap -x <PID>

示例:

pmap -x 1234

可以看到:

  • 内存地址
  • 映射文件(.so)
  • 权限(r/w/x)

✅ 方法 3:cat /proc/<PID>/maps

最底层、最准确

cat /proc/1234/maps

或只看库:

cat /proc/1234/maps | grep '\.so'

✅ 方法 4:lsof(查看进程打开的文件)

lsof -p <PID>

只看动态库:

lsof -p 1234 | grep '\.so'

✅ 方法 5:pldd(显示进程运行时链接库)

pldd <PID>

⚠️ 有些系统可能没有 pldd


二、macOS 下查看进程依赖库

✅ 方法 1:otool

otool -L /path/to/program

查看运行中的进程:

vmmap <PID> | grep '\.dylib'

三、Windows 下查看进程依赖库

✅ 方法 1:任务管理器(简单)

  • 打开任务管理器
  • 进程 → 右键 → “转到详细信息”
  • 右键列头 → 勾选 “DLL”

✅ 方法 2:tasklist

tasklist /m

查看指定进程:

tasklist /m /fi "PID eq 1234"

✅ 方法 3:Process Explorer(强烈推荐)

  • 微软官方工具
  • 可看到进程加载的所有 DLL
  • 支持查看 DLL 路径、签名

下载:
https://learn.microsoft.com/sysinternals/downloads/process-explorer


四、常见使用场景推荐

场景 推荐方法
程序启动前分析依赖 ldd / otool -L
查看运行中进程库 /proc/PID/maps
快速查看 pmap / lsof
Windows 分析 Process Explorer
排查缺库问题 ldd + LD_LIBRARY_PATH

如果你愿意,可以告诉我:

  • ✅ 使用的系统(Linux / Windows / macOS)
  • ✅ 是想看程序本身依赖还是运行中进程
  • ✅ 是否排查某个具体报错(如 cannot open shared object

我可以给你更精确的命令。

0