Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
捕获MacOS驱动程序中的SIGKILL_Macos_Kernel_Signals_Kill Process_Xnu - Fatal编程技术网

捕获MacOS驱动程序中的SIGKILL

捕获MacOS驱动程序中的SIGKILL,macos,kernel,signals,kill-process,xnu,Macos,Kernel,Signals,Kill Process,Xnu,我目前正在调试我的守护进程,该进程可能由于SIGKILL而死亡 我希望捕获用于我的进程的信号,并添加该进程获得的打印输出 我知道SIGKILL不能在进程级信号处理程序中捕获,所以我决定使用kext 我查看了xnu源代码,发现psignal是将信号传递给目标进程的方法。然而,我尝试使用trampoline来修补它,但是这个方法只调用另一个名为psignal_internal的静态方法,它是静态的,并且可能通过编译器优化来消除 也许还有其他方法可以获得某种机制,有助于捕获sigkill事件,并在这种

我目前正在调试我的守护进程,该进程可能由于SIGKILL而死亡

我希望捕获用于我的进程的信号,并添加该进程获得的打印输出

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

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

也许还有其他方法可以获得某种机制,有助于捕获sigkill事件,并在这种情况下提供设置适当回调函数的选项


谢谢

您是否为此调查过使用dtrace?我不确定它是否有助于捕捉信号,但它肯定可以捕捉堆栈跟踪。