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

最佳答案

通常,您可以在options目录/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

通过echo切换选项,即
echo -n "1" > /sys/kernel/debug/tracing/options/trace_printk
如果您尝试过滤掉trace_printk()没有产生的任何输出,则可能需要确保trace_printk()是唯一的选项集。

如有疑问,请检查kernel documentation总是很好。当我第一次学习ftrace时,还有一篇很棒的lwn文章对我有所帮助,它称为Secrets of the Ftrace function tracer,其中包括一些有关过滤的概述。

关于linux - ftrace : Only print output of trace_printk(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37592089/

10-09 08:43