Cleanups.

Tomorrow: PTRACE_SYSEMU/PTRACE_SYSEMU_SINGLESTEP

> The semantics is that the entry report always does like
> UTRACE_SYSCALL_ABORT to skip the actual call, and then
> there is no exit report.

Thanks! this is easy.

What about PTRACE_SYSEMU_SINGLESTEP ? I will read the code
tomorrow, but it is easy to miss some detail and we don't
have any test-cases.

Looks like, PTRACE_SYSEMU_SINGLESTEP is PTRACE_SINGLESTEP
plus: if we enter syscall we should

        - return UTRACE_SYSCALL_ABORT

        - avoid SYSCALL_EXIT report like PTRACE_SYSEMU

        - avoid the unnecessary send_sigtrap() in syscall_trace_leave()
          somehow, but the exact semantics is not clear to me...

          since utrace doesn't actually stops in 
tracehook_report_syscall_exit(),
          we shouldn't worry? Hmm, except the tracee stops in SYSCALL_ENTRY,
          I guess...

Could you clarify?

In particular. The tracee stops in SYSCALL_ENTRY, the tracer
does PTRACE_SYSEMU_SINGLESTEP. We should just do enable_step()
and clear UTRACE_EVENT(SYSCALL_EXIT), correct?

Oleg.

Reply via email to