2

我已经尝试过这些,但它们都产生“空”输出文件:

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
4

1 回答 1

2

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

要以“正确”的方式执行此操作,必须function_graph在内核中获得支持。在 x86 架构上,这取决于 CC_OPTIMIZE_FOR_SIZE 被禁用,但在 x86_64 上则不然。

就我而言,我没有费心编译自定义内核来禁用 CC_OPTIMIZE_FOR_SIZE,我只是做了

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

并包括各种看起来像是可以通过添加几个-l选项来调用的函数。这足以弄清楚我想知道什么。

于 2011-05-22T14:37:37.740 回答