ftrace:只打印 trace_printk() 的输出

Rav*_*avi 3 linux trace ftrace linux-kernel

是否可以仅转储文件中的trace_printk()输出trace?我的意思是过滤掉函数跟踪器(或任何其他跟踪器)中的所有函数。

bur*_*ino 5

通常,您可以在选项目录中关闭选项/sys/kernel/debug/tracing/options。使用ls显示所有切换,能够选择。

# ls
annotate     context-info     funcgraph-abstime   funcgraph-overhead  func_stack_trace  hex             overwrite        record-cmd  sym-offset       trace_printk
bin          disable_on_free  funcgraph-cpu       funcgraph-overrun   function-fork     irq-info        printk-msg-only  sleep-time  sym-userobj      userstacktrace
blk_classic  display-graph    funcgraph-duration  funcgraph-proc      function-trace    latency-format  print-parent     stacktrace  test_nop_accept  verbose
block        event-fork       funcgraph-irqs
Run Code Online (Sandbox Code Playgroud)

通过 切换选项echo,即

echo -n "1" > /sys/kernel/debug/tracing/options/trace_printk

如果您试图过滤掉不是由 产生的任何输出trace_printk(),您可能需要确保这trace_printk()是唯一的选项集。

有疑问时查看内核文档总是好的。还有一篇很棒的 lwn 文章在我第一次学习 ftrace 时帮助了我,名为Secrets of the Ftrace function tracer,其中包括一些关于一般过滤的部分。