On Mon, 21 Jul 2014 17:41:17 PDT Nick Owens <[email protected]> wrote:
>
> hello,
>
> i'm trying to use ratrace to debug a go binary.
> what i don't understand is why records of syscalls sometimes appear on
> top of one another.
>
> here's the output of 'ratrace -c ./strings.test >[2]/tmp/ratrace.log',
> where strings.test is made with 'go test -c strings'.
>
> http://sprunge.us/aCBG
>
> you can see in several places that more than one syscall record is
> printed on the same line.
Look at code bracketed by
if(up->procctl == Proc_tracesyscall){
in /sys/src/9/pc/trap.c
Hints: rfork() returns twice: in parent and in child. exist()
never returns. A syscall may finish *after* a later syscall
(from another process) returns.