我已尝试过这些,但所有这些都会生成“空”输出文件:
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
答案 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
选项来调用它们。这足以弄清楚我想知道什么。