【问题标题】:Is it possible to intercept signals to another process?是否有可能拦截到另一个进程的信号?
【发布时间】:2014-07-04 18:58:34
【问题描述】:

是否可以在通往另一个进程(我不是父进程)的途中捕获信号并调用本地函数?特别是当用户将 SIGINFO 发送到特定进程时,我想捕获它并发送不同的信号。 这有可能吗?我必须使用 ktrace / ptrace 吗?我是否需要像 lldb 的行为一样“附加调试器”?

【问题讨论】:

    标签: signals posix freebsd


    【解决方案1】:

    如果您想从用户区执行此操作,那么是的,您必须使用 ptrace(2) 并实现调试器功能的子集。 IE。您将需要具有适当的权限才能附加到进程、拦截信号、可能读取和修改寄存器以更改信号编号等。

    另一种选择是对内核进行更改并在那里实现您想要的功能。然后你不必使用 ptrace,但缺点是你需要一个自定义内核。

    【讨论】:

      猜你喜欢
      • 2020-02-05
      • 1970-01-01
      • 2021-06-14
      • 2010-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多