본문 바로가기
Kernel/Practice

함수 ftrace 얻기

by 暻煥 2024. 2. 2.

ftrace를 완전히 사용하기 위한 configuration 활성화

CONFIG_FTRACE=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_IRQSOFF_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_STACK_TRACER=y
CONFIG_TRACER=SNAPSHOT=y

 

먼저 아래의 명령어로 trace 가능한 함수 확인

cat /sys/kernel/debug/tracing/available_filter_functions

 

show_interrupt() 함수 정보를 얻기위해 아래 스크립트 사용

#!/bin/bash

# how to use
# filter_ftrace.sh function_name

echo 0 > /sys/kernel/debug/tracing/tracing_on
sleep 1
echo "tracing_off" 

echo 0 > /sys/kernel/debug/tracing/events/enable
sleep 1
echo "events disabled"

echo secondary_start_kernel > /sys/kernel/debug/tracing/set_ftrace_filter
sleep 1
echo "set_ftrace_filter_init"

echo function > /sys/kernel/debug/tracing/current_tracer
sleep 1
echo "function tracer enabled"

echo $1 >> /sys/kernel/debug/tracing/set_ftrace_filter
sleep 1
echo "set_ftrace_filter enabled"

echo 1 > /sys/kernel/debug/tracing/options/func_stack_trace
echo 1 > /sys/kernel/debug/tracing/options/sym-offset
echo "function stack trace enabled"

echo 1 > /sys/kernel/debug/tracing/tracing_on
echo "tracing_on"

 

아래 명령어 입력

$ filter_ftrace.sh show_interrupt

 

ftrace 로그를 텍스트 파일로 변환

#!/bin/bash

echo 0 > /sys/kernel/debug/tracing/tracing_on
echo "ftrace off"

sleep 3

cat /sys/kernel/debug/tracing/trace > ./ftrace_log.txt

 

'Kernel > Practice' 카테고리의 다른 글

misc device 例  (0) 2024.09.21
kwork 사용 例  (0) 2024.02.02
hrtimer 사용 例  (0) 2024.02.02
process 생성/종료 ftrace 얻기  (0) 2024.02.02
debugfs 생성 ( /sys/kernel/debug/)  (0) 2024.02.02