At present, to set syscall tracing, the Task requires that the traceSyscall
boolean be set to true. When a task is continued via sendContinue (), a check
is made to see if the traceSyscall boolean is set true and if yes, instead of
using PTRACE_CONT, PTRACE_SYSCALL is used. The problem is that in addition to
this, the PTRACE options require changing. The PTRACE_O_TRACESYSGOOD option
must be set prior to running with PTRACE_SYSCALL. Without setting the option,
the low-level wait logic can't determine a syscall event has occurred and treats
the event as a regular trap. Currently, the options only get set in Task
states: attached and startRunning. If a frysk-user tries to set the syscall
trace after a stop occurs, a signal for example, the options do not get set
before continuing and frysk treatst the syscall event as a trap.
A suggested method might be to register option changes and check when continuing
whether PTRACE_SETOPTIONS must be performed.