我想将一个共享库注入一个进程(我ptrace()
用来做那部分),然后能够将共享库的输出返回到我正在使用某种形式的 IPC 编写的调试器中。我的直觉是使用管道,但唯一真正的要求是:
- 我不想在文件系统上存储任何东西来促进通信,因为它只会在调试器运行时持续。
- 我想要一个可移植的 Unix 解决方案(因此 Unix 标准的系统调用将是理想的)。
我遇到的问题是,据我所知,如果我pipe()
在调试器中调用,则无法将管道的“发送”端传递给目标进程,反之亦然。我可以设置共享内存,但我认为这需要在某个地方创建一个文件,以便我可以从两个进程中引用内存段。其他调试器在附加到已经开始运行的进程时如何捕获输出?