如何使用ftrace获取系统调用调用的内核调用图?

时间:2011-04-09 17:45:59

标签: linux-kernel ftrace

我已尝试过这些,但所有这些都会生成“空”输出文件:

trace-cmd record -p function_graph -g munmap -F ls
trace-cmd record -p function_graph -g sys_enter_munmap -F ls
trace-cmd record -p function_graph -g sys_enter -F ls

1 个答案:

答案 0 :(得分:2)

首先,您需要正确使用函数名称 - 例如用于跟踪open系统调用的函数名称为sys_open

要以“正确”的方式执行此操作,必须在内核中获得function_graph支持。在x86架构this depends on CC_OPTIMIZE_FOR_SIZE being disabled上,但在x86_64上却没有。{/ p>

在我的情况下,我没有费心去编译自定义内核以禁用CC_OPTIMIZE_FOR_SIZE,我刚刚做了

trace-cmd record -p function --func-stack

并包含各种功能,看起来可能会通过添加多个-l选项来调用它们。这足以弄清楚我想知道什么。