本文将以vp_notify函数为例,介绍下如何利用bpftrace打印内核函数调用栈。

  • 确定目标内核函数
1
2
$ bpftrace -l 'kprobe:*' | grep vp_notify
kprobe:vp_notify
  • kstack: Stack Traces, Kernel
1
2
3
$ bpftrace -e 'kprobe:vp_notify { @[kstack] = count(); }'
Attaching 1 probe...
^C

https://github.com/iovisor/bpftrace/blob/master/docs/reference_guide.md#7-kstack-stack-traces-kernel

count()的含义