在Linux中有没有一种方法可以检查应用程序加载符号的顺序?

3

我知道有一个/proc/proc#/maps文件,显示已加载的库,但是有没有办法找出符号加载的顺序?

2个回答

4

您可以使用LD_DEBUG环境变量获取各种调试信息。例如:

$ LD_DEBUG=files ls

这将执行ls并显示被加载的共享库。使用LD_DEBUG=help获取其他选项列表。


2
你可以在 strace 下运行该应用程序,并观察动态链接器将库文件 mmap 到进程内存中。

有没有更好的方法只查看 mmap 的信息,因为 strace 输出了大量数据,即使使用 | grep mmap 也很难浏览所有数据? - bbazso
-e mmap选项仅过滤mmap。 - user257111
我认为你应该接受@mark4o的答案 - 我完全忘记了LD_DEBUG - 它实际上允许您观察加载的库、符号处理、绑定等。 - Nikolai Fetissov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接