2

我在 /tmp 文件夹中创建了一个共享库“mylib.so”。我想分析 mylib.so。为此,我采取了以下步骤

  1. 导出 LD_PROFILE_OUTPUT=${PWD}
  2. 导出 LD_PROFILE=mylib.so
  3. 导出 LD_LIBRARY_PATH=/tmp
  4. 执行 my_app,它链接到 mylib.so

在这 4 个步骤之后,我“应该”在 /tmp 文件夹中有一个 mylib.so.profile。但没有这样的文件。我怀疑 sprof 无法找到 mylib.so。我如何告诉 sprof 在 /tmp 文件夹中查找 mylib.so?我正在使用 redhat 企业版 linux 5.0。

4

1 回答 1

1

以上所有步骤均有效。我的错误是共享库被称为 mylib.so.1 而不是 mylib.so。我在 my_app 上运行 ldd,它显示 my_app 需要 mylib.so.1。然后我更改了 export LD_PROFILE=mylib.so.1 一切正常。

于 2012-03-07T19:29:57.413 回答