linux内核trace_begin和trace_end使用分析
1,strace/ftrace的实现和使用
echo 1 > /sys/kernel/debug/tracing/tracing_on
echo function > /sys/kernel/debug/tracing/current_tracer
2, 手动插入追踪点
在内核代码中,可以使用trace_printk
函数手动插入追踪点,标记代码段的开始和结束:
trace_printk("trace_begin: function_name started\n");// 关键代码trace_printk("trace_end: function_name ended\n");
通过/sys/kernel/debug/tracing/trace
文件可以查看输出。
3,调用关系
#include <linux/kernel.h>
#include <linux/module.h>
static int __init trace_example_init(void) {
trace_printk("trace_begin: trace_example_init started\n");
&n