如何知道我正在处理的系统调用的名称?

时间:2015-01-02 09:52:54

标签: linux-kernel stack-trace system-calls

我试图通过在avc_audit()函数中打印一些信息来调试SELinux。我需要的信息是当前的pid和系统调用。 pid很简单:get_current()->pid,但我无法找到一种方法来获取我正在处理的当前系统调用。

我查看了get_wchan(),但它只适用于等待进程。我可以像get_wchan()那样检查堆栈,但是有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

在代码中调用dump_stack(),这将为您提供进入syslog的堆栈跟踪,这可以帮助您确定调用了哪个系统调用。有更好的方法可以在内核,systemtap,ftrace等中跟踪系统调用。您可能希望开始研究process/strace.stp