我目前正在调试我的守护进程,该守护进程可能因 SIGKILL 而死。
我想捕捉用于我的进程的信号并添加该进程得到的打印输出。
我知道 SIGKILL 不能被进程级信号处理程序捕获,所以我决定使用 kext。
我查看了 xnu 源代码,发现这psignal
是将信号传递给目标进程的方法。但是,所以我尝试使用trampoline对其进行修补,但是该方法仅调用了另一个名为staticpsignal_internal
的静态方法,并且可能被编译器优化消除了。
也许还有其他方法可以获得某种机制,可能有助于捕捉这个 sigkill 事件,并可能提供在这种情况下设置适当回调函数的选项?
谢谢