我试图通过在avc_audit()
函数中打印一些信息来调试SELinux。我需要的信息是当前的pid和系统调用。 pid很简单:get_current()->pid
,但我无法找到一种方法来获取我正在处理的当前系统调用。
我查看了get_wchan()
,但它只适用于等待进程。我可以像get_wchan()
那样检查堆栈,但是有更好的方法吗?
答案 0 :(得分:2)
在代码中调用dump_stack(),这将为您提供进入syslog的堆栈跟踪,这可以帮助您确定调用了哪个系统调用。有更好的方法可以在内核,systemtap,ftrace等中跟踪系统调用。您可能希望开始研究process/strace.stp