c++ - sprof 如何找到我的共享库

标签 c++ sprof

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

  1. 导出 LD_PROFILE_OUTPUT=${PWD}
  2. 导出 LD_PROFILE= mylib.so
  3. 导出 LD_LIBRARY_PATH=/tmp
  4. 执行链接到 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/

相关文章:

c++ - 通过索引 : backwards vs forward 访问 vector 的速度

c++ - 我应该将分配的内存归零吗?

c++ - "const char *"类型的默认参数与 "char *"类型的参数不兼容

c - gprof : How to generate call graph for functions in shared library that is linked to main program

c++ - sprof 平面配置文件名称列的格式很难看

linux - 如何使用sprof?

C++ Win32 API GetMessage 来自独立线程中的 Awesomium

c++ - 确定具有指定属性的多边形