2010-09-24 52 views
3

我有一个应用程序(为此我没有源代码)。如何跟踪应用程序动态加载哪些库?

我知道它根据命令行参数设计为动态加载共享库。

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

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

我想弄清楚为什么,如果我能确认脚本正在寻找我认为是的库,并且能够跟踪它的位置,它将会有所帮助。

是否有任何工具可以帮助我?我一直在Google上搜索,但我发现的大部分信息都是关于ldd的,这些信息只能告诉你静态链接的库。

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

感谢

回答

3

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

+0

完美。原来缺失的图书馆并不是被报导的图书馆。 “strace”立即显而易见。 – Dancrumb 2010-09-24 19:02:12

0

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