linux - 为什么 perf 脚本不起作用?

作为 Linux 中的绿色图形,我想使用“perf”来生成火焰图。 为确保正常运行,我遵循了“火焰图”官方 github 页面的说明[ https://github.com/brendangregg/FlameGraph]

但是,当我使用命令pref script > out.pref 时,出现了这些错误:

在/usr/lib/x86_64-linux-gnu/dri/vmwgfx_dri.so 中找不到符号,也许安装调试包? 无法打开/tmp/perf-6637.map,继续无符号 无法打开/tmp/perf-6663.map,继续无符号 无法打开/tmp/perf-6674.map,继续无符号 无法打开/tmp/perf-6703.map,继续无符号 无法打开/tmp/perf-6713.map,继续无符号 无法打开/tmp/perf-6720.map,继续无符号 无法打开/tmp/perf-6755.map,继续无符号 无法打开/tmp/perf-6772.map,继续无符号

我在Google和perf的WiKi上搜索了很多次,发现还有一个命令perf script -i perf.data % > out.pref,居然可以用。

但是下一个命令 perl ../FlameGraph/stackcollapse-perf.pl perf.unfold & > perf.folded 会发出这个错误:

[1]+ 停止的 perf 脚本 -i perf.data

好像也解决不了这个问题。我尝试从源代码为我的系统重建 perf,但这似乎也没有帮助。

我已经尝试了多种变体,但似乎都不起作用。最好的方法是什么?提前致谢。

最佳答案

如果你想解决符号问题,你可以尝试这样做:

# Install the debugging symbols for vmwgfx_dri and your kernel using something 

dnf debuginfo-install -y mesa-dri-drivers
dnf debuginfo-install -y kernel

我认为使用 flamgraph 工具,您只需将 perf.data 文件放在同一目录中,然后运行: 火焰图 > my_flamegraph.svg

然后您在浏览器中或使用某种 svg 查看器打开 my_flamegraph.svg。

perf 脚本将显示您使用 perf 分析的程序堆栈的文本版本,这也非常有用。

https://stackoverflow.com/questions/37186137/

相关文章:

algorithm - 跳跃点搜索 : mix between Normal and Orthogo

java - 重置运行时权限

android-studio - 为什么 Android Studio 缩进两个标签?

r - 如何在 Jupyter 中启用 R 语法高亮显示?

android - 从 Custom Content Provider 访问数据

pycharm - 如何在不执行 "Nosetests"的情况下在 Pycharm 中实际调试或运行

javascript - AmCharts 缩小事件

Javafx pickOnBounds 设置因 SplitPane 而失败 - 无法通过透明的 Sp

azure - 为什么我无法删除空的应用服务计划?

amazon-web-services - AWS S3 : distributed concate