问题描述
我正在尝试让 perf 工具在我们的一个 linux 设置中运行,该设置没有/不能有 linux 源。 所以,我在另一台机器上下载了 linux 代码并编译了 perf (cd tools/perf; make)。 我将 perf 二进制文件复制到我的目标机器上。 但是,在开始录制时,它说“无法合成 bpf 事件”。
root> perf record -a -g --call-graph dwarf -p 836
Warning:
PID/TID switch overriding SYSTEM
Couldn't synthesize bpf events.
[ perf record: Woken up 1 times to write data ]
Failed to read max cpus,using default of 4096
[ perf record: Captured and wrote 0.057 MB perf.data ]
在我们的目标机器上运行的 Linux 版本:5.4.66-rt38-intel-pk-preempt-rt
我用来编译 perf 的代码:https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git/log/?h=v5.4-rt
因为我得到这个'无法合成 bpf 事件',我想我没有在 perf 报告中得到用户空间堆栈。 我应该怎么做才能消除此错误以使用 perf 获取正在运行的进程的用户空间堆栈?请多多指教!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)