我正在尝试通过在 avc_audit()
函数中打印一些信息来调试 SELinux。我需要的信息是当前的pid和系统调用。 pid 很简单:get_current()->pid
,但我找不到一种方法来获取我正在处理的当前系统调用。
我已经查看了 get_wchan()
,但它仅适用于等待进程。我可以像 get_wchan()
那样检查堆栈,但有更好的方法吗?
最佳答案
在代码中调用 dump_stack(),这将为您提供系统日志中的堆栈跟踪,这应该可以帮助您确定调用了哪个系统调用。有更好的方法来跟踪内核中的系统调用、systemtap、ftrace 等。您可能需要开始研究 process/strace.stp
关于linux-kernel - 如何知道我当前正在处理的系统调用的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27740234/