Fix page faults in strace
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 4 Feb 2016 03:00:24 +0000 (22:00 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 4 Feb 2016 22:39:26 +0000 (17:39 -0500)
commitef8602bb306e57327f0cce227685372f44aaedc2
treec46bb4ca7047f98df230a7fef64162056d10ece8
parent06001a6672764d03bf2a5076810c5deba836a07f
Fix page faults in strace

There are a couple issues, one of which we had.  For one, if the tracer
turned on halfway through a syscall, then kthread->strace might have
been garbage.  Probably not, but better safe than sorry.

The other issue is that the syscall struct could be gone by the time the
syscall ends and we finish the trace.  This could happen with
sys_exec().  We clear kthread->sysc, since the memory it points to was
already freed during the exec.

sctrace() will get cleaned up a little once we merge it with the
original tracer.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/src/syscall.c