如何使用perf捕获组合的内核和用户空间堆栈
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用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。
答案
尝试使用bcc
技术的BPF
实用程序。看看profile
util。
https://github.com/iovisor/bcc/blob/master/docs/tutorial.md
以上是关于如何使用perf捕获组合的内核和用户空间堆栈的主要内容,如果未能解决你的问题,请参考以下文章