> Change ptrace_report_exit() to use ptrace_event. Leaving aside my reservations about the whole plan, this is the most concise example yet of how you are introducing duplicate boilerplate all over the place where it ought to be written to share the code. Even repeating "(event << 8) | SIGTRAP" is obviously ugly.
utrace_ptrace_event is the right abstraction. Add the other field initializers as arguments. Thanks, Roland