I'm use google perf tools for analize my program. Run program on arm device 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
Next load profiling result on host linux-mint. And run google-pprof
google-pprof --text projects/build/ARM_VARISCITE/bin/driver prof.out
But I have corupted results
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
All libraries install in toolchain library. How I can setup sysroot path? And show method names instead of addresses?
need use two flags
first:
--tools= /opt/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-
full path to compiller tools with toolchain prefix. You can use also variable PPROF_TOOLS.
second:
--lib_prefix=<path_to_usr_lib>,<path_toolchain_lib>
also need disable gcc flag -fomit-frame-pointer