This is an example that shows the back and forth interaction that is possible 
between an strace aware gdbclient and the gdb remote protocol aware strace.

STRACE client
Process 10442 attached in non-stop mode

GDB client
(gdb) continue
Thread 2 "tstthreads1.x" hit Breakpoint 3, thread_worker_2 () at 
tstthreads1.c:88
88      int unknown_syscall = 123456789;
(gdb)
Thread 3 "tstthreads1.x" hit Breakpoint 2, thread_worker_1 () at 
tstthreads1.c:53
53      int unknown_syscall = 123456789;

STRACE client
rt_sigprocmask(SIG_UNBLOCK, [USR1], NULL, 8) = 0
mmap(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, 
-1, 0) = 0x7ffff6ffa000
brk(NULL)                               = 0x603000
brk(0x624000)                           = 0x624000
brk(NULL)                               = 0x624000
mprotect(0x7ffff6ffa000, 4096, PROT_NONE) = 0
clone( <unfinished ...>
[pid 10455] set_robust_list(0x3d0f00, 140737345724400) = 10455
[pid 10455] mmap(NULL, 8392704, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0 <unfinished ...>
[pid 10442] <... clone resumed> child_stack=0x7ffff77f9ff0, 
flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID,
 parent_tidptr=0x7ffff77fa9d0, tls=0x7ffff77fa700, child_tidptr=0x7ffff77fa9d0) 
= 140737328943104
[pid 10442] mprotect(0x7ffff67f9000, 4096, PROT_NONE) = 0
[pid 10442] clone(child_stack=0x7ffff6ff8ff0, 
flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID,
 parent_tidptr=0x7ffff6ff99d0, tls=0x7ffff6ff9700, child_tidptr=0x7ffff6ff99d0) 
= 10456

GDB client
(gdb) thread 2
93      FILE *f = fopen("/tmp/,tstthreads1-2.txt", "w");

STRACE client
[pid 10442] set_robust_list(0x3d0f00, 140737337331696 <unfinished ...>
[pid 10456] mmap(NULL, 134217728, PROT_NONE, 
MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7fffee7f9000
[pid 10456] munmap(0x7fffee7f9000, 25194496) = 0
[pid 10456] munmap(0x7ffff4000000, 41914368) = 0
[pid 10456] mprotect(0x7ffff0000000, 135168, PROT_READ|PROT_WRITE) = 0
[pid 10456] open(0x400da5, O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3

GDB client
(gdb) next
94      fprintf(f, "line one");
(gdb) next
95      fclose(f);
(gdb) next

STRACE client
[pid 10456] fstat(3, {st_mode=S_IFREG|0664, st_size=0, ...}) = 0
[pid 10456] write(3, "line one", 8)     = 8
[pid 10456] close(3)                    = 0

GDB client
(gdb) thr 3
66      chroot (".");

STRACE client
[pid 10455] chroot(0x400da3)            = -1 EPERM (Operation not permitted)

GDB client
(gdb) next
68      pipe (fd);
(gdb) next

STRACE client
[pid 10455] pipe([3, 4])                = 0


------------------------------------------------------------------------------
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

Reply via email to