在MacOS驱动程序中捕获SIGKILL

时间:2016-12-06 09:48:20

标签: macos kernel signals kill-process xnu

我正在调试我的守护进程,据说由于SIGKILL而死亡。

我想抓住那个用于我的流程的信号,并添加这个过程得到的打印输出。

我知道SIGKILL无法在进程级信号处理程序中捕获,所以我决定使用kext。

我查看了xnu源代码,发现psignal是将信号传递给目标进程的方法。但是,所以我尝试使用trampoline来修补它,但是这个方法只调用另一个名为psignal_internal的静态方法,它可能是通过编译器优化来消除的。

也许有其他方法可以获得某种机制,可以帮助捕获这个sigkill事件,并可能提供在这种情况下设置正确的回调函数的选项?

谢谢

0 个答案:

没有答案