【发布时间】:2010-11-04 16:49:38
【问题描述】:
我正在尝试分析一个不是我编写的 C++ 应用程序,以了解主要计算点的位置。我不是 C++ 专家,更不是 C++ 调试/分析专家。我相信我遇到了动态库的(常见?)问题。
我使用 (OS X, G++) 编译指向Google CPU Profiler 的链接:
env LIBS=-lprofiler ./configure
make
make install
然后我运行配置文件安装的应用程序(jags):
env CPUPROFILE=./jags.prof /usr/local/bin/jags regression.cmd
pprof /usr/local/bin/jags jags.prof
不幸的是,我得到了错误:
pprof /usr/local/bin/jags jags.prof 无法执行“objdump”: /usr/local/bin/pprof 第 2833 行没有这样的文件或目录。 objdump /System/Library/Frameworks/Accelerate.framework/Versions/A/ Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib:没有这样的文件或目录程序动态链接到 libLAPACK.dylib。所以prof 似乎不明白(?)。我想过尝试静态链接,但是与程序相关的文档说不可能在 LAPACK 或 BLAS(两个必需的库)中进行静态链接。
有没有办法让分析器忽略 libLAPACK?如果它不在 libLAPACK 中采样,我没关系。或者我怎样才能让分析工作?
【问题讨论】:
-
我相信我的问题实际上是 OSX 没有
objdump'. It instead usesotool'。如果有人知道解决方案,请告诉我...