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)    收藏  举报

导航