armv7l上的性能堆栈回溯

armv7l上的性能堆栈回溯,arm,armv7,perf,backtrace,Arm,Armv7,Perf,Backtrace,我试图使用perf来获取系统中堆栈回溯的信息。 我编译了一个应用程序,其中main调用f,f调用g1,g1调用g3,g3调用g4,g4调用g2。 我希望我的背带是这样的 g2 g4 g3 g1 f 主要 但是,我在perf脚本中裁剪了回溯,比如 a.out 2869 [000] 19414.348571: 225426 cycles:ppp: 7ac f (/opt/usr/home/owner/a.out)

我试图使用perf来获取系统中堆栈回溯的信息。 我编译了一个应用程序,其中main调用f,f调用g1,g1调用g3,g3调用g4,g4调用g2。 我希望我的背带是这样的

  • g2
  • g4
  • g3
  • g1
  • f
  • 主要
但是,我在perf脚本中裁剪了回溯,比如

a.out  2869 [000] 19414.348571:     225426 cycles:ppp:
                     7ac f (/opt/usr/home/owner/a.out)
                beb3dd2c [unknown] ([unknown])

a.out  2869 [000] 19414.348754:     235721 cycles:ppp:
                     72c g1 (/opt/usr/home/owner/a.out)
                beb3dd24 [unknown] ([unknown])

a.out  2869 [000] 19414.348937:     246486 cycles:ppp:
                     670 g3 (/opt/usr/home/owner/a.out)
                beb3dd14 [unknown] ([unknown])

a.out  2869 [000] 19414.349121:     232929 cycles:ppp:
                     60c g4 (/opt/usr/home/owner/a.out)
                beb3dd04 [unknown] ([unknown])
如何获取有关回溯的更多信息

编译:armlinuxgnueabigcc-O0-g3-marm-fno省略帧指针-funwind tables main.c

性能记录:性能记录-g-a

性能脚本:性能脚本


Target在Linux 3.10.65上运行。

在perf for ARM中的堆栈展开实现出现问题:在某个时刻没有实现。 尝试最近的内核和/或最新版本的perf(新的perf工具将在旧内核上工作,但部分回溯读取在内核中)

(这里也提到:)

LinuxPerf具有特定于体系结构的支持代码。x86有一些矮人堆栈帧展开支持,而arm和arm64没有。它应该在ARM32/64上实现。 ARMv7的工作是在LEG-760蓝图下完成的。。预期结果是在perf输出统计信息中对用户和内核调用链进行回溯

2013年9月后承诺提供支持: 和

请尝试3.11版本的kernel&perf或任何更新版本的kernel