From 5e8955c2ad4b51acc96fdb671c4fef924dbc7f82 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Sun, 27 Sep 2015 15:38:46 +0200 Subject: i386: trace syscalls of a single task * i386/i386/debug_i386.c (syscall_trace_task): New variable. (syscall_trace_print): If set, trace only syscalls from this task. --- i386/i386/debug_i386.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/i386/i386/debug_i386.c b/i386/i386/debug_i386.c index 7a33350f..233caa72 100644 --- a/i386/i386/debug_i386.c +++ b/i386/i386/debug_i386.c @@ -131,6 +131,7 @@ debug_trace_dump(void) #include int syscall_trace = 0; +task_t syscall_trace_task; int syscall_trace_print(int syscallvec, ...) @@ -139,6 +140,9 @@ syscall_trace_print(int syscallvec, ...) int i; const mach_trap_t *trap = &mach_trap_table[syscallnum]; + if (syscall_trace_task && syscall_trace_task != current_task()) + goto out; + printf("0x%08x:0x%08x:%s(", current_task(), current_thread(), trap->mach_trap_name); for (i = 0; i < trap->mach_trap_arg_count; i++) { @@ -154,6 +158,7 @@ syscall_trace_print(int syscallvec, ...) } printf(")\n"); + out: return syscallvec; } -- cgit v1.2.3