我正在尝试使用FTRACE跟踪并在可加载的驱动程序模块上获取function_graph 但是,不知何故,我没有看到该模块中的任何函数被跟踪。
这是我做的(我已将内核配置为在菜单配置中已经有FTRACE)
#echo function_graph > /sys/kernel/debug/tracing/current_tracer
#cat /sys/kernel/debug/tracing/current_tracer
function_graph
#echo 1 > tracing_on
#insmod my_module.ko
#echo 0 > tracing_on
#cat trace
跟踪文件中的任何内容都没有my_module.ko中的任何函数
编译my_module.c时是否需要启用一些编译器标志? 任何想法我需要做什么?
谢谢!
答案 0 :(得分:0)
我怀疑你没有看到任何被追踪的功能;通常动态ftrace是启用的,因此您必须手动选择要跟踪的内容。
cat available_filter_functions
它显示了您可以跟踪的所有功能(grep用于您想要的确保它就在那里)。当然,只有在加载模块后才能看到模块的功能。所以你加载模块然后你添加你的功能。
insmod mymodule.ko
echo my_function >> set_ftrace_filter
您可以在内核文档中找到有关ftrace
的所有详细信息答案 1 :(得分:0)
尝试此命令:
echo $$ >> /sys/kernel/debug/tracing/set_ftrace_pid