我正在尝试分析我未编写的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
解决问题。