我在/tmp 文件夹中创建了一个共享库“mylib.so”。我想配置 mylib.so。 为此,我采取了以下步骤
- 导出 LD_PROFILE_OUTPUT=${PWD}
- 导出 LD_PROFILE= mylib.so
- 导出 LD_LIBRARY_PATH=/tmp
- 执行链接到 mylib.so 的 my_app
在这 4 个步骤之后,我“应该”在/tmp 文件夹中有一个 mylib.so.profile。但是没有这样的文件。我怀疑 sprof 找不到 mylib.so。我如何告诉 sprof 在/tmp 文件夹中查找 mylib.so? 我使用的是 redhat enterprise linux 5.0。
最佳答案
以上所有步骤均有效。我的错误是共享库被称为 mylib.so.1 而不是 mylib.so。我在 my_app 上运行 ldd,它显示 my_app 需要 mylib.so.1。 然后我更改了 export LD_PROFILE=mylib.so.1 并且一切正常。
关于c++ - sprof 如何找到我的共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9607543/