tracer ftrace笔记(23)—— ftrace使用笔记
基于msm-5.4
一、各个tracer简介
默认使能的tracer:
/sys/kernel/debug/tracing # cat available_tracers
blk wakeup_dl wakeup_rt wakeup preemptirqsoff preemptoff irqsoff function nop
各tracer作用简介:
blk:
wakeup_dl:
wakeup_rt:
wakeup:
preemptirqsoff:
preemptoff:
irqsoff:
function: 打印函数被哪个函数调用了以及函数运行的上下文,可以设置过滤pid和函数名。
nop:
二、function tracer
1. 用法
/sys/kernel/debug/tracing # cat available_tracers blk wakeup_dl wakeup_rt wakeup preemptirqsoff preemptoff irqsoff function nop /sys/kernel/debug/tracing # echo function > current_tracer /sys/kernel/debug/tracing # echo 595 > set_ftrace_pid //设置要跟踪的线程 /sys/kernel/debug/tracing # echo schedule > set_ftrace_filter //设置要跟踪的函数 /sys/kernel/debug/tracing # echo 1 > tracing_on /sys/kernel/debug/tracing # cat trace_pipe surfaceflinger-595 [001] ...1 26747.217275: schedule <-binder_thread_read surfaceflinger-595 [001] ...1 26747.217803: schedule <-futex_wait_queue_me ...
2. 作用
可以过滤某个线程的某个函数何时被哪个函数调用了,调用时运行在哪个上下文中。
TODO: 可以设置跟踪多个线程或多个函数吗?这个是不是可以多搞几层栈,搞个5-6层。
TODO: 测试每一个,看下这个目录下每个文件的作用。
posted on 2025-01-17 14:42 Hello-World3 阅读(28) 评论(0) 收藏 举报