我正在尝试分析我未编写的C++应用程序,以了解主要计算点的位置。我不是C++专家,甚至不是C++调试/分析专家。我相信我在动态库中遇到了(常见问题)问题。

我使用(OS X,G++)编译到Google CPU Profiler的链接:

env LIBS=-lprofiler ./configure
make
make install

然后,我使用以下命令运行已安装的应用程序(锯齿)的配置文件:
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 /系统/库/框架/Accelerate.framework/版本/ A /
Frameworks / vecLib.framework / Versions / A / libLAPACK.dylib:无此类文件或目录

该程序动态链接到libLAPACK.dylib。因此prof似乎不了解它(?)。我考虑过尝试进行静态链接,但是与该程序相关的文档说,不可能在LAPACK或BLAS(两个必需的库)中进行静态链接。

有没有办法让探查器忽略libLAPACK?如果没有在libLAPACK中取样,我可以。还是我可能会进行分析工作?

最佳答案

此错误是由Jags作为Shell脚本引起的,随后称为可分析代码。

pprof /usr/local/bin/REAL_EXEC jags.prof

解决问题。

10-06 03:50