google-pprof 显示来自 ARM 的结果

google-pprof show result from ARM

我正在使用 google 性能工具来分析我的程序。 运行 ARM 设备 Cortex A9 上的程序。

LD_PRELOAD="/usr/lib/libprofiler.so.0" CPUPROFILE=./prof.out CPUPROFILE_REALTIME=1 CPUPROFILE_FREQUENCY=1000 TCMALLOC_STACKTRACE_METHOD=arm bin/driver -c etc/driver/config.json

主机 linux-mint 上的下一个加载分析结果。和 运行 google-pprof

google-pprof --text projects/build/ARM_VARISCITE/bin/driver prof.out

但是我已经损坏了结果

Using local file projects/OrionWebModules/build/ARM_VARISCITE/bin/driver.
Using local file prof.out.
/usr/bin/objdump: '/usr/lib/libPocoXML.so.46': No such file
/usr/bin/objdump: '/lib/librt-2.19.so': No such file
/usr/bin/objdump: '/lib/libdl-2.19.so': No such file
/usr/bin/objdump: '/lib/libpthread-2.19.so': No such file
/usr/bin/objdump: '/lib/libm-2.19.so': No such file
/usr/bin/objdump: '/usr/lib/libunwind.so.8.0.1': No such file
/usr/bin/objdump: '/lib/libc-2.19.so':No such file
/usr/bin/objdump: '/lib/libgcc_s.so.1': No such file
/usr/bin/objdump: '/usr/lib/libstdc++.so.6.0.18': No such file
/usr/bin/objdump: '/usr/lib/libPocoFoundation.so.46': No such file
/usr/bin/objdump: '/usr/lib/libPocoJSON.so.46': No such file
/usr/bin/objdump: '/usr/lib/libPocoUtil.so.46': No such file
/usr/bin/objdump: '/usr/lib/libPocoNet.so.46': No such file
/usr/bin/objdump: '/usr/lib/libprofiler.so.0.4.8': No such file
/usr/bin/objdump: '/lib/ld-2.19.so': No such file
/usr/bin/addr2line: '/lib/ld-2.19.so': No such file
/usr/bin/addr2line: '/usr/lib/libPocoFoundation.so.46':No such file
/usr/bin/addr2line: '/usr/lib/libstdc++.so.6.0.18': No such file
/usr/bin/addr2line: '/lib/libc-2.19.so': No such file
/usr/bin/addr2line: '/lib/libpthread-2.19.so': No such file
Total: 202934 samples
202672  99.9%  99.9%   202672  99.9% 76a0d1a4
 212   0.1% 100.0%      212   0.1% 76921c98
  17   0.0% 100.0%       17   0.0% 76a7b774
   6   0.0% 100.0%        6   0.0% 76a9f2fc
   3   0.0% 100.0%        3   0.0% 76aaf474
   1   0.0% 100.0%        1   0.0% 76921c9c
   1   0.0% 100.0%        1   0.0% 76a0d18c
   1   0.0% 100.0%        1   0.0% 76a0d1b8
   1   0.0% 100.0%        1   0.0% 76a4ff3c
   1   0.0% 100.0%        1   0.0% 76a51280
   1   0.0% 100.0%        1   0.0% 76a539fc
   1   0.0% 100.0%        1   0.0% 76a57c70
   1   0.0% 100.0%        1   0.0% 76a9f324
   1   0.0% 100.0%        1   0.0% 76a9fba4
   1   0.0% 100.0%        1   0.0% 76abd378
   1   0.0% 100.0%        1   0.0% 76bc0f20
   1   0.0% 100.0%        1   0.0% 76be3308
   1   0.0% 100.0%        1   0.0% 76c6fff0
   1   0.0% 100.0%        1   0.0% 76d158fc
   1   0.0% 100.0%        1   0.0% 76d41a3c
   1   0.0% 100.0%        1   0.0% 76f776e8
   1   0.0% 100.0%        1   0.0% 76f77ca8
   1   0.0% 100.0%        1   0.0% 76f77cb8
   1   0.0% 100.0%        1   0.0% 76f7ccd8
   1   0.0% 100.0%        1   0.0% 76f86ff0
   1   0.0% 100.0%        1   0.0% 76f881c0
   1   0.0% 100.0%        1   0.0% Poco::AtomicCounter::operator--
   1   0.0% 100.0%        1   0.0% Poco::SharedPtr::release
   1   0.0% 100.0%        1   0.0% __destroy

所有库都安装在工具链库中。我如何设置 sysroot 路径?并显示方法名称而不是地址?

需要使用两个标志

第一个:

--tools= /opt/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-

带有工具链前缀的编译器工具的完整路径。您还可以使用变量 PPROF_TOOLS

第二个:

--lib_prefix=<path_to_usr_lib>,<path_toolchain_lib>

还需要禁用 gcc 标志 -fomit-frame-pointer