ftrace

  • function_graph跟蹤器 的 config 配置
$ git show e93ae8919ebde855a16d9f02f2fb1fe59f1b33a9
commit e93ae8919ebde855a16d9f02f2fb1fe59f1b33a9
Author: lisider <1368317399@qq.com>
Date:   Thu Jan 10 08:26:37 2019 -0800

    添加 ftrace 到 config

diff --git a/arch/arm/configs/vexpress_defconfig b/arch/arm/configs/vexpress_defconfig
index ad4b1a7..8b6082b 100644
--- a/arch/arm/configs/vexpress_defconfig
+++ b/arch/arm/configs/vexpress_defconfig
@@ -161,3 +161,7 @@ CONFIG_DEBUG_USER=y
 # CONFIG_CRYPTO_HW is not set
 CONFIG_NODE_PLATFORM=y
 CONFIG_NODE_I2C=y
+CONFIG_FTRACE=y  									// 打開了 ftrace ,是其他配置的基礎
+CONFIG_FUNCTION_TRACER=y							// 打開了 ftrace 中的 function跟蹤器
+CONFIG_FUNCTION_GRAPH_TRACER=y						// 打開了 ftrace 中的 function_graph跟蹤器
+CONFIG_DYNAMIC_FTRACE=y							// 打開了 動態ftrace 功能,可以設置需要跟蹤的函數,不要跟蹤的函數
  • demo

  • function 跟蹤器


function 跟蹤器和 events 跟蹤的設置 是比較複雜的



包括 events  和 其他所有跟蹤器都用 tracing_on 來開關。
echo function > current_tracer
echo 8899 > set_ftrace_pid // 設置跟蹤的pid  // 這是 CONFIG_FUNCTION_TRACER 支持的 
echo func_object > set_ftrace_filter // 設置跟蹤的函數 // 這是 CONFIG_DYNAMIC_FTRACE 支持的
echo 1 > tracing_on
。。。 等一會
echo 0 > tracing_on
cat trace
  • event 跟蹤
events 不屬於跟蹤器,不用設置 current_tracer ,其他 包括function 的 跟蹤器都需要設置current_tracer 
echo xxx > set_event
echo 1 > tracing_on
cat trace
  • 其他跟蹤器

其他的跟蹤器的設置都很簡單(只需要設置 current_tracer爲當前跟蹤器,然後 echo 1 > tracing_on,過一段時間操作之後,echo 0 > tracing_on ,cat trace)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章