作为 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 分析的程序堆栈的文本版本,这也非常有用。
关于linux - 为什么 perf 脚本不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37186137/