PT_ATTACH
LINUX_PTRACE_ATTACH, PT_ATTACH,
PT_KILL, -1, PT_ATTACH, PT_DETACH,
PT_KILL, -1, PT_ATTACH, PT_DETACH,
case PT_ATTACH:
case PT_ATTACH:
case PT_ATTACH:
case PT_ATTACH:
KASSERT(req == PT_KILL || req == PT_STOP || req == PT_ATTACH);
ATF_REQUIRE_MSG(ptrace(PT_ATTACH, pid[i], 0, 0) >= 0,
ATF_REQUIRE_ERRNO(EPERM, ptrace(PT_ATTACH, 1, NULL, 0) == -1);
ATF_REQUIRE_ERRNO(EPERM, ptrace(PT_ATTACH, 1, NULL, 0) == -1);
ATF_REQUIRE_ERRNO(EINVAL, ptrace(PT_ATTACH, getpid(), NULL, 0) == -1);
if (ptrace(PT_ATTACH, getppid(), NULL, 0) == 0) {
ATF_REQUIRE_ERRNO(EPERM, ptrace(PT_ATTACH, 0, NULL, 0) == -1);
FORKEE_ASSERT(ptrace(PT_ATTACH, tracee, NULL, 0) != -1);
FORKEE_ASSERT(ptrace(PT_ATTACH, tracee, NULL, 0) != -1);
SYSCALL(ptrace(PT_ATTACH, pid, NULL, 0), 0);
FORKEE_ASSERT(ptrace(PT_ATTACH, tracee, NULL, 0) != -1);
FORKEE_ASSERT(ptrace(PT_ATTACH, tracee, NULL, 0) != -1);
FORKEE_ASSERT(ptrace(PT_ATTACH, tracee, NULL, 0) != -1);
SYSCALL_REQUIRE(ptrace(PT_ATTACH, tracee, NULL, 0) != -1);
FORKEE_ASSERT(ptrace(PT_ATTACH, getppid(), NULL, 0) != -1);
FORKEE_ASSERT(ptrace(PT_ATTACH, tracee, NULL, 0) != -1);
if (ptrace(PT_ATTACH, pid, 0, 0) == -1)