> Additionally, support for qualifying expressions (-e expr) and following > children (-f) will be pushed soon. -f and -e support has been added to the gdbserver remote protocol backend in the strace branch at https://github.com:stanfordcox/strace Here is an interleaved example with two threads. gdb starts and runs the example with strace being attached to it.
GDB begin and set breaks (gdb) b thread_worker_1 Breakpoint 2 at 0x4009ef: file tstthreads1.c, line 47. (gdb) b thread_worker_2 Breakpoint 3 at 0x400a65: file tstthreads1.c, line 76. STRACE begin strace -G localhost:65432 -f -e '!futex,restart_syscall' -p 10508 Process 10508 attached in non-stop mode GDB continue and do nexting (gdb) c Continuing. [New Thread 11051.11063] Thread 2 "tstthreads1.x" hit Breakpoint 2, thread_worker_1 () at tstthreads1.c:47 47 int unknown_syscall = 123456789; (gdb) thr 2 [Switching to thread 2 (Thread 11051.11063)] #0 thread_worker_1 () at tstthreads1.c:47 47 int unknown_syscall = 123456789; (gdb) n 49 char buf1[2] = "a"; (gdb) 54 close (-1); (gdb) 56 chroot ("."); (gdb) STRACE reflects this .... clone( <unfinished ...> .... [pid 11051] <... clone resumed> child_stack=0x7ffff77fbff0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7ffff77fc9d0, tls=0x7ffff77fc700, child_tidptr=0x7ffff77fc9d0) = 11063 [pid 11063] close(-1 <unfinished ...> [pid 11051] mprotect(0xffffffff, 0, PROT_READ|PROT_GROWSUP|0x2083a620 <unfinished ...> [pid 11063] <... close resumed> ) = -1 EBADF (Bad file descriptor) [pid 11051] <... mprotect resumed> ) = -1 EPERM (Operation not permitted) GDB nexting (gdb) n [New Thread 11051.11067] 58 pipe (fd); (gdb) 60 write (fd[1], buf1, sizeof (buf1)); (gdb) STRACE reflects this [pid 11063] chroot(0x400b70 <unfinished ...> [pid 11051] clone( <unfinished ...> [pid 11063] <... chroot resumed> ) = -1 EPERM (Operation not permitted) [pid 11051] <... clone resumed> child_stack=0, flags=CLONE_VM|CLONE_FS|CLONE_SIGHAND|0x400000|112) = -1 EPERM (Operation not permitted) [pid 11067] set_robust_list(0x400b70, 0 <unfinished ...> [pid 11063] pipe( <unfinished ...> [pid 11067] <... set_robust_list resumed> ) = 0 [pid 11063] <... pipe resumed> [3, 4]) = 0 GDB switch threads and nexting (gdb) thr 3 [Switching to thread 3 (Thread 11051.11067)] #0 thread_worker_2 () at tstthreads1.c:76 76 int unknown_syscall = 123456789; (gdb) n 78 char buf1[2] = "a"; (gdb) 83 close (-1); (gdb) 70 syscall (unknown_syscall); (gdb) 85 chroot ("."); n 87 pipe (fd); STRACE [pid 11063] pipe( <unfinished ...> [pid 11067] <... set_robust_list resumed> ) = 0 [pid 11063] <... pipe resumed> [3, 4]) = 0 [pid 11063] write(4, "a\0", 2 <unfinished ...> [pid 11063] read(3, "a\0", 2) = 2 [pid 11067] close(-1 <unfinished ...> [pid 11067] chroot(0x400b70) = -1 EPERM (Operation not permitted) ------------------------------------------------------------------------------ Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today. http://sdm.link/xeonphi _______________________________________________ Strace-devel mailing list Strace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/strace-devel