sprof 如何找到我的共享库
Posted
技术标签:
【中文标题】sprof 如何找到我的共享库【英文标题】:How can sprof locate my shared library 【发布时间】:2012-03-07 19:08:25 【问题描述】:我在 /tmp 文件夹中创建了一个共享库“mylib.so”。我想分析 mylib.so。 为此,我采取了以下步骤
-
导出 LD_PROFILE_OUTPUT=$PWD
导出 LD_PROFILE=mylib.so
导出 LD_LIBRARY_PATH=/tmp
执行 my_app,它与 mylib.so 链接
在这 4 个步骤之后,我“应该”在 /tmp 文件夹中有一个 mylib.so.profile。但没有这样的文件。我怀疑 sprof 无法找到 mylib.so。我如何告诉 sprof 在 /tmp 文件夹中查找 mylib.so? 我正在使用 redhat 企业版 linux 5.0。
【问题讨论】:
【参考方案1】:以上所有步骤均有效。我的错误是共享库被称为 mylib.so.1 而不是 mylib.so。我在 my_app 上运行 ldd,它显示 my_app 需要 mylib.so.1。 然后我更改了 export LD_PROFILE=mylib.so.1 一切正常。
【讨论】:
以上是关于sprof 如何找到我的共享库的主要内容,如果未能解决你的问题,请参考以下文章
如何在共享库中找到 C++ isfinite() 的解析位置?