如何使用perf

时间:2016-12-20 13:45:58

标签: linux-kernel perf

我试图用perf捕获组合的用户和内核堆栈,因此我可以看到哪个用户空间代码产生的是特定的内核调用链。 基本上我想创建一个如下所示的火焰图:flamegraph http://www.brendangregg.com/FlameGraphs/example-perf.svg

不幸的是,我的所有内核堆栈都以entry_SYSCALL_64_fastpath结束,并且没有与用户空间堆栈的连接。

我正在使用perf record -g --call-graph dwarf -F 99 --pid 12345进行捕获。我有内核,libc和我的程序的调试符号。 这是Fedora 25系统上的内核4.8.14。

1 个答案:

答案 0 :(得分:0)

尝试使用bcc技术的BPF实用程序。看看profile util。

https://github.com/iovisor/bcc/blob/master/docs/tutorial.md