本文将以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()的含义