Skip to content

Instantly share code, notes, and snippets.

@wangbj
Created June 14, 2019 20:44
Show Gist options
  • Save wangbj/bee99fd9950e31c3cbf5f90e867c765f to your computer and use it in GitHub Desktop.
Save wangbj/bee99fd9950e31c3cbf5f90e867c765f to your computer and use it in GitHub Desktop.
systrace echo tool
./target/debug/systrace --tool=/home/parfunc/git/systrace/target/debug/libecho.so --preloader=/home/parfunc/git/systrace/target/debug/libpreloader.so ./tests/test1.sh
[pid 31902] openat(AT_FDCWD, "/dev/tty", O_NONBLOCK) = 3
[pid 31902] close(3) = 0
[pid 31902] openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_CLOEXEC) = 3
[pid 31902] fstat(3, 0x7ffff771aac0) = 0
[pid 31902] mmap(NULL, 0x4b3220, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ffff595a000
[pid 31902] close(3) = 0
[pid 31902] getuid() = 1000
[pid 31902] getgid() = 1000
[pid 31902] geteuid() = 1000
[pid 31902] getegid() = 1000
[pid 31902] rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
[pid 31902] time(NULL) = 1560544953
[pid 31902] ioctl(-1, TIOCGPGRP, 0x7fffffffe104) = -9 (Bad file descriptor (os error 9))
[pid 31902] sysinfo(140737488346720, 76, 140737342465684, 93824995483664, 0, 140737353816000) = 0
[pid 31902] rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTART|SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=0x8, sa_mask=[0x555500000000|ILL|TRAP|BUS|ALRM|CHLD|CONT|STOP|XCPU|XFSZ|PROF|IO|SYS], sa_flags=SA_RESTART|SA_NODEFER|SA_RESTORER, sa_restorer=0x0}, 8) = 0
[pid 31902] rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTART|SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=, sa_restorer=0x0}, 8) = 0
[pid 31902] rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTART|SA_RESTORER, sa_restorer=0x7ffff736cf20}, 8) = 0
[pid 31902] rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=, sa_restorer=0x0}, 8) = 0
[pid 31902] rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, 8) = 0
[pid 31902] rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=, sa_restorer=0x0}, 8) = 0
[pid 31902] rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_DFL, sa_mask=[0x7fff00000000|HUP|INT|TRAP|ABRT|BUS|FPE|USR1|SEGV|USR2|PIPE|ALRM|TERM|STKFLT|CONT|STOP|TTIN|TTOU|XFSZ|VTALRM|PROF|IO|PWR|SYS], sa_flags=, sa_restorer=0x0}, 8) = 0
[pid 31902] rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=, sa_restorer=0x0}, 8) = 0
[pid 31902] rt_sigaction(SIGTTIN, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, 8) = 0
[pid 31902] rt_sigaction(SIGTTIN, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=, sa_restorer=0x0}, 8) = 0
[pid 31902] rt_sigaction(SIGTTOU, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, 8) = 0
[pid 31902] rt_sigaction(SIGTTOU, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=, sa_restorer=0x0}, 8) = 0
[pid 31902] rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
[pid 31902] rt_sigaction(SIGQUIT, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=0x55555586cb00, sa_mask=[0xe00000000|], sa_flags=, sa_restorer=0x0}, 8) = 0
[pid 31902] uname(, 0x7fffffffde50) = 0
[pid 31902] stat("/home/parfunc/git/systrace", 0x7fffffffde00) = 0
[pid 31902] stat(".", 0x7fffffffde90) = 0
[pid 31902] stat("/home", 0x7fffffffde40) = 0
[pid 31902] stat("/home/parfunc", 0x7fffffffde40) = 0
[pid 31902] stat("/home/parfunc/git", 0x7fffffffde40) = 0
[pid 31902] stat("/home/parfunc/git/systrace", 0x7fffffffde40) = 0
[pid 31902] stat("/home/parfunc", 0x7fffffffdea0) = 0
[pid 31902] getpid() = 31902
[pid 31902] openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache", O_RDONLY) = 3
[pid 31902] fstat(3, 0x7fffffffdc00) = 0
[pid 31902] mmap(NULL, 0x6708, PROT_READ, MAP_SHARED, 3, 0) = 0x7ffff7fe5000
[pid 31902] close(3) = 0
[pid 31902] futex(0x7ffff771aa08, FUTEX_WAKE_PRIVATE, 2147483647, NULL, 0x3, 0) = 0
[pid 31902] getppid() = 31901
[pid 31902] gettimeofday(timeval { tv_sec: 93824995537600, tv_usec: 140737488347040 }, NULL) = 0
[pid 31902] getpid() = 31902
[pid 31902] getpgrp() = 31901
[pid 31902] ioctl(2, TIOCGPGRP, 0x7fffffffdfd4) = 0
[pid 31902] rt_sigaction(SIGCHLD, {sa_handler=0x5555555ab720, sa_mask=[], sa_flags=SA_RESTART|SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=0x7ffff7fee000, sa_mask=[0x7fff00000000|ALRM|TERM|STKFLT|CONT|STOP|TSTP|TTIN|TTOU|URG|XCPU|XFSZ|VTALRM|PROF|IO|PWR|SYS], sa_flags=SA_ONSTACK|SA_RESTART|SA_NODEFER|SA_RESETHAND|SA_RESTORER, sa_restorer=0x7fffffffdef0}, 8) = 0
[pid 31902] prlimit64(0, 6, 0, 140737488346944, 0, 0) = 0
[pid 31902] rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
[pid 31902] openat(AT_FDCWD, "./tests/test1.sh", O_RDONLY) = 3
[pid 31902] stat("./tests/test1.sh", 0x7fffffffe080) = 0
[pid 31902] ioctl(3, TCGETS, 0x7fffffffe090) = -25 (Inappropriate ioctl for device (os error 25))
[pid 31902] lseek(3, 0, SEEK_CUR) = 0
[pid 31902] read(3, "#! /bin/bash\n\necho "hello, world", 80) = 80
[pid 31902] lseek(3, 0, SEEK_SET) = 0
[pid 31902] prlimit64(0, 7, 0, 140737488347328, 140737488347344, 0) = 0
[pid 31902] fcntl(255, F_GETFD) = -9 (Bad file descriptor (os error 9))
[pid 31902] dup2(3, 255) = 255
[pid 31902] close(3) = 0
[pid 31902] fcntl(255, F_SETFD, 1) = 0
[pid 31902] fcntl(255, F_GETFL) = 32768
[pid 31902] fstat(255, 0x7fffffffe040) = 0
[pid 31902] lseek(255, 0, SEEK_CUR) = 0
[pid 31902] read(255, "#! /bin/bash\n\necho "hello, world", 89) = 89
[pid 31902] getpid() = 31902
[pid 31902] fstat(1, 0x7fffffffd6f0) = 0
[pid 31902] write(1, "hello, world, mypid=31902\n", 26hello, world, mypid=31902
) = 26
[pid 31902] rt_sigprocmask(SIG_BLOCK, [INT|CHLD], [], 8) = 0
[pid 31902] rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
[pid 31902] rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
[pid 31902] rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
[pid 31902] rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
[pid 31903] set_robust_list(0x7ffff7fb1aa0, 24[pid 31902] rt_sigaction(SIGINT, {sa_handler=0x5555555a80f0, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=0x7fffffffdf30, sa_mask=[0xe00000000|HUP|USR2|CONT|TSTP|TTOU|XCPU|VTALRM|PROF|IO|PWR|SYS], sa_flags=SA_ONSTACK|SA_RESTART|SA_NODEFER|SA_RESETHAND|SA_RESTORER, sa_restorer=0x0}, 8) = 0
) = 0
[pid 31903] getpid() = 31903
[pid 31903] close(255) = 0
[pid 31903] rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
[pid 31902] wait4(-1, 0x7fffffffde50, 0, NULL[pid 31903] rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=0x7ffff7fb17c0, sa_mask=[0x555500000000|ILL|USR1|USR2|TERM|STKFLT|CONT|STOP|XCPU|XFSZ|PROF|IO|SYS], sa_flags=, sa_restorer=0x0}, 8) = 0
[pid 31903] rt_sigaction(SIGTTIN, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, 8) = 0
[pid 31903] rt_sigaction(SIGTTOU, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=0x7ffff736cf20, sa_mask=[0xe00000000|ABRT|FPE|ILL|SEGV|USR2|PIPE|TERM|STKFLT|CHLD|CONT|STOP|TSTP|TTIN|TTOU|URG|XCPU|XFSZ|VTALRM|PROF|WINCH|IO|PWR|SYS], sa_flags=, sa_restorer=0x2}, 8) = 0
[pid 31903] rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=, sa_restorer=0x0}, 8) = 0
[pid 31903] rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, 8) = 0
[pid 31903] rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTART|SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, 8) = 0
[pid 31903] rt_sigaction(SIGCHLD, {sa_handler=0x5555555ab720, sa_mask=[], sa_flags=SA_RESTART|SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=, sa_restorer=0x0}, 8) = 0
[pid 31903] rt_sigaction(SIGINT, {sa_handler=0x5555555c4c80, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTART|SA_RESTORER, sa_restorer=0x7ffff736cf20}, 8) = 0
[pid 31903] rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
[pid 31903] rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
[pid 31903] getpid() = 31903
[pid 31903] write(1, "fork a child, mypid=31903\n", 26fork a child, mypid=31903
) = 26
[pid 31903] exit_group(0) = 31903
[pid 31902] rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffff736cf20}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_NOCLDSTOP, sa_restorer=0x0}, 8) = 0
[pid 31902] rt_sigprocmask(SIG_SETMASK, [], NULL, 8[pid 31902] wait4(-1, 0x7fffffffd290, WNOHANG, NULL) = -10 (No child processes (os error 10))
) = 0
[pid 31902] read(255, "#! /bin/bash\n\necho "hello, world", 89) = 0
[pid 31902] rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
[pid 31902] rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
[pid 31902] exit_group(0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment