fn exit_syscall(&mut self) -> bool {
        // If PTRACE_SYSCALL_BEFORE_SECCOMP, we are inconsistent about
        // whether we process the syscall on the syscall entry trap or
        // on the seccomp trap. Detect if we are on the former and
        // just bring us forward to the seccomp trap.
        let mut will_see_seccomp: bool = self.seccomp_bpf_enabled
            && (self.session().syscall_seccomp_ordering()
                == PtraceSyscallSeccompOrdering::SyscallBeforeSeccomp)
            && !self.is_ptrace_seccomp_event();
        loop {
            self.resume_execution(
                ResumeRequest::ResumeSyscall,
                WaitRequest::ResumeWait,
                TicksRequest::ResumeNoTicks,
                None,
            );
            if will_see_seccomp && self.is_ptrace_seccomp_event() {
                will_see_seccomp = false;
                continue;
            }
            if self.maybe_ptrace_event() == PTRACE_EVENT_EXIT {
                return false;
            }
            ed_assert!(self, !self.maybe_ptrace_event().is_ptrace_event());
            if self.maybe_stop_sig().is_not_sig() {
                let arch = self.arch();
                self.canonicalize_regs(arch);
                break;
            }
            if ReplaySession::is_ignored_signal(self.maybe_stop_sig().get_raw_repr())
                && self.session().is_replaying()
            {
                continue;
            }
            ed_assert!(self, self.session().is_recording());
            self.as_record_task_mut().unwrap().stash_sig();
        }
        true
    }
/// We have observed entry to a syscall (either by PTRACE_EVENT_SECCOMP or
/// a syscall, depending on the value of Session::syscall_seccomp_ordering()).
/// Continue into the kernel to perform the syscall and stop at the
/// PTRACE_SYSCALL syscall-exit trap. Returns false if we see the process exit
/// before that.
We have observed entry to a syscall (either by PTRACE_EVENT_SECCOMP or
a syscall, depending on the value of Session::syscall_seccomp_ordering()).
Continue into the kernel to perform the syscall and stop at the
PTRACE_SYSCALL syscall-exit trap. Returns false if we see the process exit
before that.
We have observed entry to a syscall ( either by PTRACE_EVENT_SECCOMP or a syscall depending on the value of Session :: syscall_seccomp_ordering () ) . Continue into the kernel to perform the syscall and stop at the PTRACE_SYSCALL syscall - exit trap . Returns false if we see the process exit before that .
fn exit_syscall(&mut self) -> bool {
        // If PTRACE_SYSCALL_BEFORE_SECCOMP, we are inconsistent about
        // whether we process the syscall on the syscall entry trap or
        // on the seccomp trap. Detect if we are on the former and
        // just bring us forward to the seccomp trap.
        let mut will_see_seccomp: bool = self.seccomp_bpf_enabled
            && (self.session().syscall_seccomp_ordering()
                == PtraceSyscallSeccompOrdering::SyscallBeforeSeccomp)
            && !self.is_ptrace_seccomp_event();
        loop {
            self.resume_execution(
                ResumeRequest::ResumeSyscall,
                WaitRequest::ResumeWait,
                TicksRequest::ResumeNoTicks,
                None,
            );
            if will_see_seccomp && self.is_ptrace_seccomp_event() {
                will_see_seccomp = false;
                continue;
            }
            if self.maybe_ptrace_event() == PTRACE_EVENT_EXIT {
                return false;
            }
            ed_assert!(self, !self.maybe_ptrace_event().is_ptrace_event());
            if self.maybe_stop_sig().is_not_sig() {
                let arch = self.arch();
                self.canonicalize_regs(arch);
                break;
            }
            if ReplaySession::is_ignored_signal(self.maybe_stop_sig().get_raw_repr())
                && self.session().is_replaying()
            {
                continue;
            }
            ed_assert!(self, self.session().is_recording());
            self.as_record_task_mut().unwrap().stash_sig();
        }
        true
    }
fn exit_syscall ( & mut self ) -> bool { // If PTRACE_SYSCALL_BEFORE_SECCOMP, we are inconsistent about // whether we process the syscall on the syscall entry trap or // on the seccomp trap. Detect if we are on the former and // just bring us forward to the seccomp trap. let mut will_see_seccomp : bool = self . seccomp_bpf_enabled && ( self . session ( ) . syscall_seccomp_ordering ( ) == PtraceSyscallSeccompOrdering :: SyscallBeforeSeccomp ) && ! self . is_ptrace_seccomp_event ( ) ; loop { self . resume_execution ( ResumeRequest :: ResumeSyscall , WaitRequest :: ResumeWait , TicksRequest :: ResumeNoTicks , None , ) ; if will_see_seccomp && self . is_ptrace_seccomp_event ( ) { will_see_seccomp = false ; continue ; } if self . maybe_ptrace_event ( ) == PTRACE_EVENT_EXIT { return false ; } ed_assert ! ( self self maybe_ptrace_event ( ) is_ptrace_event ( ) ) ; if self . maybe_stop_sig ( ) . is_not_sig ( ) { let arch = self . arch ( ) ; self . canonicalize_regs ( arch ) ; break ; } if ReplaySession :: is_ignored_signal ( self . maybe_stop_sig ( ) . get_raw_repr ( ) ) && self . session ( ) . is_replaying ( ) { continue ; } ed_assert ! ( self self session ( ) is_recording ( ) ) ; self . as_record_task_mut ( ) . unwrap ( ) . stash_sig ( ) ; } true }
We have observed entry to a syscall (either by PTRACE_EVENT_SECCOMP or
a syscall, depending on the value of Session::syscall_seccomp_ordering()).
We have observed entry to a syscall ( either by PTRACE_EVENT_SECCOMP or a syscall depending on the value of Session :: syscall_seccomp_ordering () ) .
&mut self