two proposed linuxulator fixes + ptrace

Yanko Yankulov yanko.yankulov at gmail.com
Thu Jun 14 13:11:54 UTC 2018


> > > For the patch 1, TracePid, can you explain what is the meaning of the
> > > pid reported ?
> > >
> > > The TracerPid is the PID of the process currently ptrace-ing the
> process.
> > TracerPid 0 means no active tracer. So the patch is not semantically
> > correct as it always reports no tracer, but it got the program running.
> Ok, but what is the tracer ?  Is it ptrace(2) debugger, or something
> else ?
>

Yes, any ptrace(2) debugger/truss/strace/whatever. The Linux code is:

tracer = ptrace_parent(p);
if (tracer)
      tpid = task_pid_nr_ns(tracer, ns);



> >
> >
> > > For the patch 3, %r10 preservation for linux_rt_sigreturn, shouldn't
> the
> > > same handling applied to non-rt signal return ? And in fact, shouldn't
> > > it be done based on the return code instead of the syscall number ?
> Look
> > > at the amd64/amd64/vm_machdep.c:cpu_set_syscall_retval(), where I
> think
> > > EJUSTRETURN case is used by linux sigreturns.
> > >
> > The linux_rt_sigreturn seems to be the only signall return syscall.
> > The no rt_ version seems to be an old pre Linux 2.2 interface.
> >
> > The return code observation sounds right. Thanks. New patch. Ran a
> > quick check, the issue is still solved.
> Committed as r335135, thanks.
>

Great


More information about the freebsd-emulation mailing list