On Mon, 21 Jul 2014 17:41:17 PDT Nick Owens <misch...@9.offblast.org> 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.