是否有可能在去往另一个进程(我不是父进程)的路上捕获信号,而是调用本地函数?特别是当用户将SIGINFO发送到特定进程时,我想捕获它并发送不同的信号。 这有可能吗?我必须使用ktrace / ptrace吗?我是否需要附加调试器'它与lldb的行为类似吗?
答案 0 :(得分:1)
如果你想从userland那样做,那么是的,你必须使用ptrace(2)并实现调试器功能的子集。即您将需要具有适当的权限来附加到进程,拦截信号,可能读取和修改寄存器以更改信号编号等。
另一种选择是对内核进行更改并实现您想要的功能。然后你不必使用ptrace,但缺点是你需要一个自定义内核。