Skip to content

Instantly share code, notes, and snippets.

@amitsaha
Last active May 8, 2022 01:52
Show Gist options
  • Save amitsaha/8501937 to your computer and use it in GitHub Desktop.
Save amitsaha/8501937 to your computer and use it in GitHub Desktop.
strace of pipe() and popen() and kernel tracing of pipe()
# include <sys/types.h>
# include <sys/stat.h>
# include <stdlib.h>
# include <stdio.h>
int main(int argc, char **argv)
{
FILE *fp1, *fp2;
int i,read;
char buffer[8];
if (fork()==0)
{
fp1 = fopen("/tmp/myfifo", "w");
fwrite("a string", 1, 8, fp1);
fclose(fp1);
}
else
{
fp2 = fopen("/tmp/myfifo", "r");
read=fread(buffer, 1, 8, fp2);
close(fp2);
}
for(i=0; i<read;i++)
printf("%c", buffer[i]);
return 0;
}

Systemtap script:

# https://sourceware.org/systemtap/SystemTap_Beginners_Guide/targetvariables.html
probe kernel.function("*@fs/pipe.c").call
{
  if(execname() == "pipe")
      printf("%s  %s \n", thread_indent(1), probefunc());
}

probe kernel.function("*@fs/pipe.c").return
{
  if(execname() == "pipe")
      printf("%s %s \n", thread_indent(-1), probefunc());
}

probe timer.ms(100000)
{
    exit()
}

Trace result:

  0 pipe(14682):  SyS_pipe2 
     8 pipe(14682):   alloc_pipe_info 
    12 pipe(14682):  create_pipe_files 
    16 pipe(14682): sys_pipe 
     0 pipe(14682):  pipe_write 
     4 pipe(14682): do_sync_write 
     0 pipe(14682):  pipe_read 
     2 pipe(14682):   generic_pipe_buf_map 
     5 pipe(14682):  pipe_read 
     7 pipe(14682):   generic_pipe_buf_unmap 
     9 pipe(14682):  pipe_read 
    11 pipe(14682): do_sync_read 
     0 pipe(14682):  put_pipe_info 
     3 pipe(14682): pipe_release 
     0 pipe(14682):  put_pipe_info 
     2 pipe(14682): pipe_release 

# include <unistd.h>
# include <stdlib.h>
# include <stdio.h>
int main(int argc, char **argv)
{
int filefd[2];
char buf[7];
int i;
if(pipe(filefd)==-1)
{
perror("Error creating a pipe: ");
exit(1);
}
/*Write it into the pipe*/
write(filefd[1],"a string",8);
/*Read from the pipe*/
read(filefd[0], buf, 8);
for(i=0;i<8;i++)
printf("%c", *(buf+i));
return 0;
}
pipe([3, 4]) = 0
write(4, "a string", 8) = 8
read(3, "a string", 8) = 8
fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 2), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff2a791a000
/* Snippet from fs/pipe.c*/
/*
* pipefs should _never_ be mounted by userland - too much of security hassle,
* no real gain from having the whole whorehouse mounted. So we don't need
* any operations on the root directory. However, we need a non-trivial
* d_name - pipe: will go nicely and kill the special-casing in procfs.
*/
static struct dentry *pipefs_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data)
{
return mount_pseudo(fs_type, "pipe:", &pipefs_ops,
&pipefs_dentry_operations, PIPEFS_MAGIC);
}
static struct file_system_type pipe_fs_type = {
.name = "pipefs",
.mount = pipefs_mount,
.kill_sb = kill_anon_super,
};
static int __init init_pipe_fs(void)
{
int err = register_filesystem(&pipe_fs_type);
if (!err) {
pipe_mnt = kern_mount(&pipe_fs_type);
if (IS_ERR(pipe_mnt)) {
err = PTR_ERR(pipe_mnt);
unregister_filesystem(&pipe_fs_type);
}
}
return err;
}
fs_initcall(init_pipe_fs);
# include <stdlib.h>
# include <stdio.h>
int main(int argc, char **argv)
{
FILE *fp;
char buffer[500];
int i, b_read;
fp = popen("ls", "r");
if (fp==NULL)
{
perror("popen: ");
exit(1);
}
b_read = fread(buffer, 1, 500, fp);
for(i=0;i<b_read;i++)
printf("%c", buffer[i]);
pclose(fp);
return 0;
}
> strace -f ./popen
execve("./popen", ["./popen"], [/* 71 vars */]) = 0
brk(0) = 0x10d5000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f73b8ffe000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=160889, ...}) = 0
mmap(NULL, 160889, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f73b8fd6000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\36\2\366>\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2100656, ...}) = 0
mmap(0x3ef6000000, 3924576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3ef6000000
mprotect(0x3ef61b4000, 2097152, PROT_NONE) = 0
mmap(0x3ef63b4000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b4000) = 0x3ef63b4000
mmap(0x3ef63ba000, 16992, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3ef63ba000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f73b8fd5000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f73b8fd3000
arch_prctl(ARCH_SET_FS, 0x7f73b8fd3740) = 0
mprotect(0x3ef63b4000, 16384, PROT_READ) = 0
mprotect(0x600000, 4096, PROT_READ) = 0
mprotect(0x3ef5a1f000, 4096, PROT_READ) = 0
munmap(0x7f73b8fd6000, 160889) = 0
brk(0) = 0x10d5000
brk(0x10f6000) = 0x10f6000
brk(0) = 0x10f6000
pipe2([3, 4], O_CLOEXEC) = 0
clone(Process 11324 attached
child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f73b8fd3a10) = 11324
[pid 11324] dup2(4, 1 <unfinished ...>
[pid 11323] close(4 <unfinished ...>
[pid 11324] <... dup2 resumed> ) = 1
[pid 11323] <... close resumed> ) = 0
[pid 11324] execve("/bin/sh", ["sh", "-c", "ls"], [/* 71 vars */] <unfinished ...>
[pid 11323] fcntl(3, F_SETFD, 0) = 0
[pid 11323] fstat(3, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
[pid 11323] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f73b8ffd000
[pid 11324] <... execve resumed> ) = 0
[pid 11323] read(3, <unfinished ...>
[pid 11324] brk(0) = 0x23b2000
[pid 11324] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc730a0a000
[pid 11324] access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
[pid 11324] open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
[pid 11324] fstat(3, {st_mode=S_IFREG|0644, st_size=160889, ...}) = 0
[pid 11324] mmap(NULL, 160889, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fc7309e2000
[pid 11324] close(3) = 0
[pid 11324] open("/lib64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3
[pid 11324] read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\316\240\v?\0\0\0"..., 832) = 832
[pid 11324] fstat(3, {st_mode=S_IFREG|0755, st_size=175560, ...}) = 0
[pid 11324] mmap(0x3f0ba00000, 2268928, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3f0ba00000
[pid 11324] mprotect(0x3f0ba25000, 2097152, PROT_NONE) = 0
[pid 11324] mmap(0x3f0bc25000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x25000) = 0x3f0bc25000
[pid 11324] close(3) = 0
[pid 11324] open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
[pid 11324] read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\16@\366>\0\0\0"..., 832) = 832
[pid 11324] fstat(3, {st_mode=S_IFREG|0755, st_size=22440, ...}) = 0
[pid 11324] mmap(0x3ef6400000, 2109744, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3ef6400000
[pid 11324] mprotect(0x3ef6403000, 2093056, PROT_NONE) = 0
[pid 11324] mmap(0x3ef6602000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x3ef6602000
[pid 11324] close(3) = 0
[pid 11324] open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
[pid 11324] read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\36\2\366>\0\0\0"..., 832) = 832
[pid 11324] fstat(3, {st_mode=S_IFREG|0755, st_size=2100656, ...}) = 0
[pid 11324] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc7309e1000
[pid 11324] mmap(0x3ef6000000, 3924576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3ef6000000
[pid 11324] mprotect(0x3ef61b4000, 2097152, PROT_NONE) = 0
[pid 11324] mmap(0x3ef63b4000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b4000) = 0x3ef63b4000
[pid 11324] mmap(0x3ef63ba000, 16992, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3ef63ba000
[pid 11324] close(3) = 0
[pid 11324] mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc7309df000
[pid 11324] arch_prctl(ARCH_SET_FS, 0x7fc7309df740) = 0
[pid 11324] mprotect(0x6dc000, 4096, PROT_READ) = 0
[pid 11324] mprotect(0x3f0bc25000, 16384, PROT_READ) = 0
[pid 11324] mprotect(0x3ef6602000, 4096, PROT_READ) = 0
[pid 11324] mprotect(0x3ef63b4000, 16384, PROT_READ) = 0
[pid 11324] mprotect(0x3ef5a1f000, 4096, PROT_READ) = 0
[pid 11324] munmap(0x7fc7309e2000, 160889) = 0
[pid 11324] rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
[pid 11324] open("/dev/tty", O_RDWR|O_NONBLOCK) = 3
[pid 11324] close(3) = 0
[pid 11324] brk(0) = 0x23b2000
[pid 11324] brk(0x23d3000) = 0x23d3000
[pid 11324] brk(0) = 0x23d3000
[pid 11324] open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
[pid 11324] fstat(3, {st_mode=S_IFREG|0644, st_size=106070960, ...}) = 0
[pid 11324] mmap(NULL, 106070960, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fc72a4b6000
[pid 11324] close(3) = 0
[pid 11324] brk(0) = 0x23d3000
[pid 11324] getuid() = 1000
[pid 11324] getgid() = 1000
[pid 11324] geteuid() = 1000
[pid 11324] getegid() = 1000
[pid 11324] rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
[pid 11324] open("/proc/meminfo", O_RDONLY|O_CLOEXEC) = 3
[pid 11324] fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
[pid 11324] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc730a09000
[pid 11324] read(3, "MemTotal: 7896372 kB\nMemF"..., 1024) = 1024
[pid 11324] close(3) = 0
[pid 11324] munmap(0x7fc730a09000, 4096) = 0
[pid 11324] rt_sigaction(SIGCHLD, {SIG_DFL, [], SA_RESTORER|SA_RESTART, 0x3ef6035cd0}, {SIG_DFL, [], 0}, 8) = 0
[pid 11324] rt_sigaction(SIGCHLD, {SIG_DFL, [], SA_RESTORER|SA_RESTART, 0x3ef6035cd0}, {SIG_DFL, [], SA_RESTORER|SA_RESTART, 0x3ef6035cd0}, 8) = 0
[pid 11324] rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x3ef6035cd0}, {SIG_DFL, [], 0}, 8) = 0
[pid 11324] rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x3ef6035cd0}, {SIG_DFL, [], SA_RESTORER, 0x3ef6035cd0}, 8) = 0
[pid 11324] rt_sigaction(SIGQUIT, {SIG_DFL, [], SA_RESTORER, 0x3ef6035cd0}, {SIG_DFL, [], 0}, 8) = 0
[pid 11324] rt_sigaction(SIGQUIT, {SIG_DFL, [], SA_RESTORER, 0x3ef6035cd0}, {SIG_DFL, [], SA_RESTORER, 0x3ef6035cd0}, 8) = 0
[pid 11324] rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
[pid 11324] rt_sigaction(SIGQUIT, {SIG_IGN, [], SA_RESTORER, 0x3ef6035cd0}, {SIG_DFL, [], SA_RESTORER, 0x3ef6035cd0}, 8) = 0
[pid 11324] uname({sys="Linux", node="localhost", ...}) = 0
[pid 11324] stat("/home/gene/work/linux_system_experiments/mycodes", {st_mode=S_IFDIR|0775, st_size=678, ...}) = 0
[pid 11324] stat(".", {st_mode=S_IFDIR|0775, st_size=678, ...}) = 0
[pid 11324] getpid() = 11324
[pid 11324] open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3
[pid 11324] fstat(3, {st_mode=S_IFREG|0644, st_size=26254, ...}) = 0
[pid 11324] mmap(NULL, 26254, PROT_READ, MAP_SHARED, 3, 0) = 0x7fc730a03000
[pid 11324] close(3) = 0
[pid 11324] getppid() = 11323
[pid 11324] stat(".", {st_mode=S_IFDIR|0775, st_size=678, ...}) = 0
[pid 11324] stat("/usr/lib64/qt-3.3/bin/sh", 0x7fff4a2f0a60) = -1 ENOENT (No such file or directory)
[pid 11324] stat("/usr/lib64/ccache/sh", 0x7fff4a2f0a60) = -1 ENOENT (No such file or directory)
[pid 11324] stat("/usr/local/bin/sh", 0x7fff4a2f0a60) = -1 ENOENT (No such file or directory)
[pid 11324] stat("/usr/bin/sh", {st_mode=S_IFREG|0755, st_size=986424, ...}) = 0
[pid 11324] stat("/usr/bin/sh", {st_mode=S_IFREG|0755, st_size=986424, ...}) = 0
[pid 11324] geteuid() = 1000
[pid 11324] getegid() = 1000
[pid 11324] getuid() = 1000
[pid 11324] getgid() = 1000
[pid 11324] access("/usr/bin/sh", X_OK) = 0
[pid 11324] stat("/usr/bin/sh", {st_mode=S_IFREG|0755, st_size=986424, ...}) = 0
[pid 11324] geteuid() = 1000
[pid 11324] getegid() = 1000
[pid 11324] getuid() = 1000
[pid 11324] getgid() = 1000
[pid 11324] access("/usr/bin/sh", R_OK) = 0
[pid 11324] stat("/usr/bin/sh", {st_mode=S_IFREG|0755, st_size=986424, ...}) = 0
[pid 11324] stat("/usr/bin/sh", {st_mode=S_IFREG|0755, st_size=986424, ...}) = 0
[pid 11324] geteuid() = 1000
[pid 11324] getegid() = 1000
[pid 11324] getuid() = 1000
[pid 11324] getgid() = 1000
[pid 11324] access("/usr/bin/sh", X_OK) = 0
[pid 11324] stat("/usr/bin/sh", {st_mode=S_IFREG|0755, st_size=986424, ...}) = 0
[pid 11324] geteuid() = 1000
[pid 11324] getegid() = 1000
[pid 11324] getuid() = 1000
[pid 11324] getgid() = 1000
[pid 11324] access("/usr/bin/sh", R_OK) = 0
[pid 11324] getpgrp() = 11318
[pid 11324] rt_sigaction(SIGCHLD, {0x440fd0, [], SA_RESTORER|SA_RESTART, 0x3ef6035cd0}, {SIG_DFL, [], SA_RESTORER|SA_RESTART, 0x3ef6035cd0}, 8) = 0
[pid 11324] getrlimit(RLIMIT_NPROC, {rlim_cur=1024, rlim_max=61574}) = 0
[pid 11324] rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
[pid 11324] rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
[pid 11324] rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
[pid 11324] stat(".", {st_mode=S_IFDIR|0775, st_size=678, ...}) = 0
[pid 11324] stat("/usr/lib64/qt-3.3/bin/ls", 0x7fff4a2f09f0) = -1 ENOENT (No such file or directory)
[pid 11324] stat("/usr/lib64/ccache/ls", 0x7fff4a2f09f0) = -1 ENOENT (No such file or directory)
[pid 11324] stat("/usr/local/bin/ls", 0x7fff4a2f09f0) = -1 ENOENT (No such file or directory)
[pid 11324] stat("/usr/bin/ls", {st_mode=S_IFREG|0755, st_size=122952, ...}) = 0
[pid 11324] stat("/usr/bin/ls", {st_mode=S_IFREG|0755, st_size=122952, ...}) = 0
[pid 11324] geteuid() = 1000
[pid 11324] getegid() = 1000
[pid 11324] getuid() = 1000
[pid 11324] getgid() = 1000
[pid 11324] access("/usr/bin/ls", X_OK) = 0
[pid 11324] stat("/usr/bin/ls", {st_mode=S_IFREG|0755, st_size=122952, ...}) = 0
[pid 11324] geteuid() = 1000
[pid 11324] getegid() = 1000
[pid 11324] getuid() = 1000
[pid 11324] getgid() = 1000
[pid 11324] access("/usr/bin/ls", R_OK) = 0
[pid 11324] stat("/usr/bin/ls", {st_mode=S_IFREG|0755, st_size=122952, ...}) = 0
[pid 11324] stat("/usr/bin/ls", {st_mode=S_IFREG|0755, st_size=122952, ...}) = 0
[pid 11324] geteuid() = 1000
[pid 11324] getegid() = 1000
[pid 11324] getuid() = 1000
[pid 11324] getgid() = 1000
[pid 11324] access("/usr/bin/ls", X_OK) = 0
[pid 11324] stat("/usr/bin/ls", {st_mode=S_IFREG|0755, st_size=122952, ...}) = 0
[pid 11324] geteuid() = 1000
[pid 11324] getegid() = 1000
[pid 11324] getuid() = 1000
[pid 11324] getgid() = 1000
[pid 11324] access("/usr/bin/ls", R_OK) = 0
[pid 11324] rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x3ef6035cd0}, {SIG_DFL, [], SA_RESTORER, 0x3ef6035cd0}, 8) = 0
[pid 11324] rt_sigaction(SIGQUIT, {SIG_DFL, [], SA_RESTORER, 0x3ef6035cd0}, {SIG_IGN, [], SA_RESTORER, 0x3ef6035cd0}, 8) = 0
[pid 11324] rt_sigaction(SIGCHLD, {SIG_DFL, [], SA_RESTORER|SA_RESTART, 0x3ef6035cd0}, {0x440fd0, [], SA_RESTORER|SA_RESTART, 0x3ef6035cd0}, 8) = 0
[pid 11324] execve("/usr/bin/ls", ["ls"], [/* 70 vars */]) = 0
[pid 11324] brk(0) = 0xfdf000
[pid 11324] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7dbaf3d000
[pid 11324] access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
[pid 11324] open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
[pid 11324] fstat(3, {st_mode=S_IFREG|0644, st_size=160889, ...}) = 0
[pid 11324] mmap(NULL, 160889, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f7dbaf15000
[pid 11324] close(3) = 0
[pid 11324] open("/lib64/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
[pid 11324] read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240d@\370>\0\0\0"..., 832) = 832
[pid 11324] fstat(3, {st_mode=S_IFREG|0755, st_size=144952, ...}) = 0
[pid 11324] mmap(0x3ef8400000, 2242712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3ef8400000
[pid 11324] mprotect(0x3ef8421000, 2093056, PROT_NONE) = 0
[pid 11324] mmap(0x3ef8620000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x20000) = 0x3ef8620000
[pid 11324] mmap(0x3ef8622000, 6296, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3ef8622000
[pid 11324] close(3) = 0
[pid 11324] open("/lib64/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3
[pid 11324] read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \26\0008>\0\0\0"..., 832) = 832
[pid 11324] fstat(3, {st_mode=S_IFREG|0755, st_size=21424, ...}) = 0
[pid 11324] mmap(0x3e38000000, 2114112, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3e38000000
[pid 11324] mprotect(0x3e38004000, 2093056, PROT_NONE) = 0
[pid 11324] mmap(0x3e38203000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x3e38203000
[pid 11324] close(3) = 0
[pid 11324] open("/lib64/libacl.so.1", O_RDONLY|O_CLOEXEC) = 3
[pid 11324] read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\37\340\3702\0\0\0"..., 832) = 832
[pid 11324] fstat(3, {st_mode=S_IFREG|0755, st_size=39200, ...}) = 0
[pid 11324] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7dbaf14000
[pid 11324] mmap(0x32f8e00000, 2130560, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x32f8e00000
[pid 11324] mprotect(0x32f8e07000, 2097152, PROT_NONE) = 0
[pid 11324] mmap(0x32f9007000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x32f9007000
[pid 11324] close(3) = 0
[pid 11324] open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
[pid 11324] read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\36\2\366>\0\0\0"..., 832) = 832
[pid 11324] fstat(3, {st_mode=S_IFREG|0755, st_size=2100656, ...}) = 0
[pid 11324] mmap(0x3ef6000000, 3924576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3ef6000000
[pid 11324] mprotect(0x3ef61b4000, 2097152, PROT_NONE) = 0
[pid 11324] mmap(0x3ef63b4000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b4000) = 0x3ef63b4000
[pid 11324] mmap(0x3ef63ba000, 16992, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3ef63ba000
[pid 11324] close(3) = 0
[pid 11324] open("/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3
[pid 11324] read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\27\200\367>\0\0\0"..., 832) = 832
[pid 11324] fstat(3, {st_mode=S_IFREG|0755, st_size=421144, ...}) = 0
[pid 11324] mmap(0x3ef7800000, 2511368, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3ef7800000
[pid 11324] mprotect(0x3ef7865000, 2093056, PROT_NONE) = 0
[pid 11324] mmap(0x3ef7a64000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x64000) = 0x3ef7a64000
[pid 11324] close(3) = 0
[pid 11324] open("/lib64/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3
[pid 11324] read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\3400@\367>\0\0\0"..., 832) = 832
[pid 11324] fstat(3, {st_mode=S_IFREG|0755, st_size=155400, ...}) = 0
[pid 11324] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7dbaf13000
[pid 11324] mmap(0x3ef7400000, 2245240, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3ef7400000
[pid 11324] mprotect(0x3ef7424000, 2093056, PROT_NONE) = 0
[pid 11324] mmap(0x3ef7623000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x23000) = 0x3ef7623000
[pid 11324] close(3) = 0
[pid 11324] open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
[pid 11324] read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\16@\366>\0\0\0"..., 832) = 832
[pid 11324] fstat(3, {st_mode=S_IFREG|0755, st_size=22440, ...}) = 0
[pid 11324] mmap(0x3ef6400000, 2109744, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3ef6400000
[pid 11324] mprotect(0x3ef6403000, 2093056, PROT_NONE) = 0
[pid 11324] mmap(0x3ef6602000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x3ef6602000
[pid 11324] close(3) = 0
[pid 11324] open("/lib64/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3
[pid 11324] read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\23 :>\0\0\0"..., 832) = 832
[pid 11324] fstat(3, {st_mode=S_IFREG|0755, st_size=22160, ...}) = 0
[pid 11324] mmap(0x3e3a200000, 2113904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3e3a200000
[pid 11324] mprotect(0x3e3a204000, 2093056, PROT_NONE) = 0
[pid 11324] mmap(0x3e3a403000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x3e3a403000
[pid 11324] close(3) = 0
[pid 11324] open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
[pid 11324] read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340m\200\366>\0\0\0"..., 832) = 832
[pid 11324] fstat(3, {st_mode=S_IFREG|0755, st_size=150800, ...}) = 0
[pid 11324] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7dbaf12000
[pid 11324] mmap(0x3ef6800000, 2213104, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3ef6800000
[pid 11324] mprotect(0x3ef6818000, 2093056, PROT_NONE) = 0
[pid 11324] mmap(0x3ef6a17000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x3ef6a17000
[pid 11324] mmap(0x3ef6a19000, 13552, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3ef6a19000
[pid 11324] close(3) = 0
[pid 11324] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7dbaf11000
[pid 11324] mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7dbaf0f000
[pid 11324] arch_prctl(ARCH_SET_FS, 0x7f7dbaf0f840) = 0
[pid 11324] mprotect(0x61a000, 4096, PROT_READ) = 0
[pid 11324] mprotect(0x3ef8620000, 4096, PROT_READ) = 0
[pid 11324] mprotect(0x3e38203000, 4096, PROT_READ) = 0
[pid 11324] mprotect(0x32f9007000, 4096, PROT_READ) = 0
[pid 11324] mprotect(0x3ef63b4000, 16384, PROT_READ) = 0
[pid 11324] mprotect(0x3ef7a64000, 4096, PROT_READ) = 0
[pid 11324] mprotect(0x3ef7623000, 4096, PROT_READ) = 0
[pid 11324] mprotect(0x3ef6602000, 4096, PROT_READ) = 0
[pid 11324] mprotect(0x3ef5a1f000, 4096, PROT_READ) = 0
[pid 11324] mprotect(0x3e3a403000, 4096, PROT_READ) = 0
[pid 11324] mprotect(0x3ef6a17000, 4096, PROT_READ) = 0
[pid 11324] munmap(0x7f7dbaf15000, 160889) = 0
[pid 11324] set_tid_address(0x7f7dbaf0fb10) = 11324
[pid 11324] set_robust_list(0x7f7dbaf0fb20, 24) = 0
[pid 11324] rt_sigaction(SIGRTMIN, {0x3ef68068c0, [], SA_RESTORER|SA_SIGINFO, 0x3ef680f750}, NULL, 8) = 0
[pid 11324] rt_sigaction(SIGRT_1, {0x3ef6806950, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x3ef680f750}, NULL, 8) = 0
[pid 11324] rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
[pid 11324] getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
[pid 11324] statfs("/sys/fs/selinux", 0x7fffa6985d90) = -1 ENOENT (No such file or directory)
[pid 11324] statfs("/selinux", 0x7fffa6985d90) = -1 ENOENT (No such file or directory)
[pid 11324] brk(0) = 0xfdf000
[pid 11324] brk(0x1000000) = 0x1000000
[pid 11324] open("/proc/filesystems", O_RDONLY) = 3
[pid 11324] fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
[pid 11324] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7dbaf3c000
[pid 11324] read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tr"..., 1024) = 330
[pid 11324] read(3, "", 1024) = 0
[pid 11324] close(3) = 0
[pid 11324] munmap(0x7f7dbaf3c000, 4096) = 0
[pid 11324] open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
[pid 11324] fstat(3, {st_mode=S_IFREG|0644, st_size=106070960, ...}) = 0
[pid 11324] mmap(NULL, 106070960, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f7db49e6000
[pid 11324] close(3) = 0
[pid 11324] ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, 0x7fffa69859d0) = -1 ENOTTY (Inappropriate ioctl for device)
[pid 11324] ioctl(1, TIOCGWINSZ, 0x7fffa6985ab0) = -1 ENOTTY (Inappropriate ioctl for device)
[pid 11324] openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
[pid 11324] getdents(3, /* 38 entries */, 32768) = 1240
[pid 11324] getdents(3, /* 0 entries */, 32768) = 0
[pid 11324] close(3) = 0
[pid 11324] fstat(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
[pid 11324] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7dbaf3c000
[pid 11324] write(1, "aio_demo\naio_demo.c\naio.stp\nbrk_"..., 362) = 362
[pid 11323] <... read resumed> "aio_demo\naio_demo.c\naio.stp\nbrk_"..., 4096) = 362
[pid 11324] close(1 <unfinished ...>
[pid 11323] read(3, <unfinished ...>
[pid 11324] <... close resumed> ) = 0
[pid 11323] <... read resumed> "", 4096) = 0
[pid 11324] munmap(0x7f7dbaf3c000, 4096 <unfinished ...>
[pid 11323] fstat(1, <unfinished ...>
[pid 11324] <... munmap resumed> ) = 0
[pid 11323] <... fstat resumed> {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 2), ...}) = 0
[pid 11324] close(2 <unfinished ...>
[pid 11323] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0 <unfinished ...>
[pid 11324] <... close resumed> ) = 0
[pid 11323] <... mmap resumed> ) = 0x7f73b8ffc000
[pid 11324] exit_group(0) = ?
[pid 11323] write(1, "aio_demo\n", 9aio_demo
) = 9
[pid 11323] write(1, "aio_demo.c\n", 11aio_demo.c
) = 11
[pid 11324] +++ exited with 0 +++
write(1, "aio.stp\n", 8) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=11324, si_status=0, si_utime=0, si_stime=0} ---
write(1, "aio.stp\n", 8aio.stp
) = 8
write(1, "brk_exp\n", 8brk_exp
) = 8
write(1, "brk_exp.c\n", 10brk_exp.c
) = 10
write(1, "catch_sigcont.c\n", 16catch_sigcont.c
) = 16
write(1, "expandfile\n", 11expandfile
) = 11
write(1, "expandfile.c\n", 13expandfile.c
) = 13
write(1, "file.txt\n", 9file.txt
) = 9
write(1, "#forkbomb.c#\n", 13#forkbomb.c#
) = 13
write(1, "ftrace_demo.c\n", 14ftrace_demo.c
) = 14
write(1, "getdents.c\n", 11getdents.c
) = 11
write(1, "getdents.s\n", 11getdents.s
) = 11
write(1, "getdents.stp\n", 13getdents.stp
) = 13
write(1, "hello\n", 6hello
) = 6
write(1, "hello.asm\n", 10hello.asm
) = 10
write(1, "hello.o\n", 8hello.o
) = 8
write(1, "hello.py\n", 9hello.py
) = 9
write(1, "hello.pyc\n", 10hello.pyc
) = 10
write(1, "hello-world.stp\n", 16hello-world.stp
) = 16
write(1, "lk_modules\n", 11lk_modules
) = 11
write(1, "open.c\n", 7open.c
) = 7
write(1, "open.s\n", 7open.s
) = 7
write(1, "pipe\n", 5pipe
) = 5
write(1, "pipe.c\n", 7pipe.c
) = 7
write(1, "popen\n", 6popen
) = 6
write(1, "popen.c\n", 8popen.c
) = 8
write(1, "read_proc.py\n", 13read_proc.py
) = 13
write(1, "read_proc_stat.py\n", 18read_proc_stat.py
) = 18
write(1, "read_root_inode\n", 16read_root_inode
) = 16
write(1, "read_root_inode.c\n", 18read_root_inode.c
) = 18
write(1, "signal\n", 7signal
) = 7
write(1, "signal.c\n", 9signal.c
) = 9
write(1, "sleep\n", 6sleep
) = 6
write(1, "sleep.c\n", 8sleep.c
) = 8
close(3) = 0
wait4(11324, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 11324
munmap(0x7f73b8ffd000, 4096) = 0
exit_group(0) = ?
+++ exited with 0 +++
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment