如何跟踪应用程序动态加载哪些库?

时间:2010-09-24 18:38:16

标签: c libraries dynamic-linking

我有一个应用程序(我没有源代码)。

我知道它的目的是动态加载共享库,具体取决于命令行参数。

我知道它应该加载哪个库,并且我已将LD_LIBRARY_PATH设置为适当的目录。

应用程序在一台服务器上运行没有任何问题,但在另一台服务器上不起作用。

我正在试图找出原因,如果我能确认脚本正在寻找我认为它的库以及我是否可以追踪它所在的位置,那将会有所帮助。

有什么工具可以帮助我吗?我一直在谷歌上搜索,但我发现的大部分信息都是关于ldd,它实际上只是告诉你静态链接库。

这是在Linux环境中,应用程序和库都是用C

编写的

由于

2 个答案:

答案 0 :(得分:3)

使用strace。您将看到正在搜索的库等,这将帮助您弄清楚发生了什么。

答案 1 :(得分:0)

由于每个共享库都被内存映射到进程的地址空间,您还可以检查/ proc / [PID] / maps文件。