我刚开始分析,并试图为我的c++项目创建一个平面配置文件。看来口香糖很受欢迎。我使用Homebrew安装了this工具,并遵循了这个简单的教程
当我尝试使用pprof --text ./my_program_name my_program_name.prof创建一个平面配置文件时,会生成一个概要文件,但其中一些配置文件只是内存地址,而不是函数名。生成的概要文件的一部分如下所示。
3585 25.5% 25.5% 3585 25.5% 0x00007ff812f740ea
1780 12.6% 38.1% 1780 12.6% 0x00007ff812f728d2
484 3.4% 41.6% 866 6.2% Block::Block@100005fc0
419 3.0% 44.5% 782 5.6% _OSSL_PARAM_locate
363 2.6% 47.1% 378 2.7% std::__1::basic_string::__zero作为参考,我正在使用g++ -std=c++17 -lprofiler -lpthread -lcrypto my_program_name.cpp -o my_program_name编译我的代码
我不知道为什么其中的一些配置文件是内存地址。当我使用pprof命令创建概要文件时,在生成概要文件之前会出现一堆错误。这些错误都是/usr/lib或/usr/lib/system中缺少的文件。错误如下所示。
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool-classic: can't open file: /usr/lib/liboah.dylib (No such file or directory)
我真的不知道该怎么办。任何帮助都将不胜感激。谢谢!另外,运行在macOS蒙特利12.3.1上。
发布于 2022-10-21 08:12:40
tcmalloc和pprof必须匹配。
例如:将libtcmalloc.a链接到位置:
/usr/local/Cellar/gperftools/2.9.1_1/lib/libtcmalloc.a
pprof应该是/usr/local/Cellar/gperftools/2.9.1_1/bin/pprof
https://stackoverflow.com/questions/72165484
复制相似问题