Linux有问必答:如何查看Linux上程序或进程用到的库

运维 系统运维
我想知道当我调用一个特定的可执行文件在运行时载入了哪些共享库。是否有方法可以明确Linux上可执行程序或运行进程的共享库依赖关系?

[[118169]]

问题:我想知道当我调用一个特定的可执行文件在运行时载入了哪些共享库。是否有方法可以明确Linux上可执行程序或运行进程的共享库依赖关系?

查看可执行程序的共享库依赖关系

要找出某个特定可执行依赖的库,可以使用ldd命令。这个命令调用动态链接器去找到程序的库文件依赖关系。

  1. $ ldd /path/to/program

注意!并不推荐为任何不可信的第三方可执行程序运行ldd,因为某些版本的ldd可能会直接调用可执行程序来明确其库文件依赖关系,这样可能不安全。

取而代之的是用一个更安全的方式来显示一个未知应用程序二进制文件的库文件依赖,使用如下命令:

  1. $ objdump -p /path/to/program | grep NEEDED

查看运行进程的共享库依赖关系

如果你想要找出被一个运行中的进程载入的共享库,你可以使用pldd命令,它会显示出在运行时被载入一个进程里的所有共享对象。

  1. $ sudo pldd <PID>

注意你需要root权限去执行pldd命令。

或者,也可以选择一个叫做pmap的命令行工具。它报告一个进程的内存映射,也能显示出运行进程的库文件依赖。

  1. $ sudo pmap <PID>

via: http://ask.xmodulo.com/check-library-dependency-program-process-linux.html

译者:KayGuoWhu 校对:wxy

译文链接:http://linux.cn/article-3609-1.html

责任编辑:牛小雨 来源: linux中国
相关推荐

2011-02-22 10:51:00

ProFTPD

2011-01-21 16:06:28

Thunderbird新手

2024-01-12 16:11:53

鸿蒙API接口GPT应用程序

2023-06-13 07:50:49

Gopher格式化时间

2020-04-29 15:10:16

Linux命令进程

2012-11-14 09:21:34

亚马逊Web服务EC2亚马逊EC2

2019-10-15 13:29:24

LinuxLinux命令

2013-08-28 15:50:36

Linux桌面Mac

2018-05-10 15:05:41

Linux用户日期命令

2011-04-28 11:34:34

2018-10-18 06:39:01

数据中心运营电气测试

2010-06-04 14:31:59

Linux 查看进程

2020-02-05 08:00:00

LinuxMacOSWindows

2013-12-02 17:33:20

Linux进程多线程

2009-10-27 16:34:02

linux top命令

2024-07-26 00:00:12

2010-06-04 15:16:36

Linux 查看进程

2009-08-26 08:58:33

思科认证CCNA思科认证网络工程师

2018-10-08 08:20:25

Linux进程端口号

2024-06-12 11:26:04

点赞
收藏

51CTO技术栈公众号