当使用ptrace分离之前跟踪器退出时,tracee进程中的所有线程都会停止

时间:2016-06-02 13:45:15

标签: behavior terminate ptrace

我无法创建ptrace附加和分离部分中描述的行为:

If the tracer dies, all tracees are automatically detached and
restarted, unless they were in group-stop.

我有一个进程(tracee),它由多个线程组成,我使用ptrace附加到这些线程。使用以下调用使用单独的进程(跟踪器):

ptrace(PTRACE_ATTACH, pid, 0, 0);
sleep(3600);

当示踪器在休眠时死亡(使用ctrl + c或kill -9)并仍然附加到进程时,我注意到tracee进程的所有线程都处于停止状态而不是继续执行。

我也尝试使用GDB来重现这个问题,因为GDB也使用ptrace附加到进程。但是当附加tracee时杀死gdb(使用kill -9)时,tracee的所有线程都会按预期继续执行。 我试过看过GDB的来源,但还是找不到任何东西。

当跟踪器死亡时,是否有人知道什么可能导致所有tracee线程的行为被停止?

使用内核3.6.5在ARM Cortex-A9 CPU上进行评估

0 个答案:

没有答案