使用strace跟踪系统调用

strace - trace system calls and signals

 

$ strace -iry ls -l
     0.000000 [      3a1cabb867] execve("/usr/bin/ls", ["ls", "-l"], [/* 28 vars */]) = 0
     0.000660 [      3a1c61659a] brk(0) = 0x1ef3000
     0.000109 [      3a1c617a0a] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f912e493000
     0.000116 [      3a1c617957] access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
     0.000142 [      3a1c6178d7] open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
     0.000090 [      3a1c617864] fstat(3</etc/ld.so.cache>, {st_mode=S_IFREG|0644, st_size=82561, ...}) = 0
     0.000166 [      3a1c617a0a] mmap(NULL, 82561, PROT_READ, MAP_PRIVATE, 3</etc/ld.so.cache>, 0) = 0x7f912e47e000
     0.000088 [      3a1c6178f7] close(3</etc/ld.so.cache>) = 0
     0.000130 [      3a1c6178d7] open("/lib64/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
     0.000089 [      3a1c617917] read(3</usr/lib64/libselinux.so.1>, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0pa`\36:\0\0\0"..., 832) = 832
     0.000103 [      3a1c617864] fstat(3</usr/lib64/libselinux.so.1>, {st_mode=S_IFREG|0755, st_size=136448, ...}) = 0
     0.000090 [      3a1c617a0a] mmap(0x3a1e600000, 2234440, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3</usr/lib64/libselinux.so.1>, 0) = 0x3a1e600000
     0.000085 [      3a1c617a57] mprotect(0x3a1e61f000, 2093056, PROT_NONE) = 0
     0.000069 [      3a1c617a0a] mmap(0x3a1e81e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3</usr/lib64/libselinux.so.1>, 0x1e000) = 0x3a1e81e000
     0.000113 [      3a1c617a0a] mmap(0x3a1e820000, 6216, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3a1e820000
     0.000079 [      3a1c6178f7] close(3</usr/lib64/libselinux.so.1>) = 0
     0.000096 [      3a1c6178d7] open("/lib64/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
     0.000097 [      3a1c617917] read(3</usr/lib64/librt-2.16.so>, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\"`\35:\0\0\0"..., 832) = 832
     0.000129 [      3a1c617864] fstat(3</usr/lib64/librt-2.16.so>, {st_mode=S_IFREG|0755, st_size=47624, ...}) = 0
     0.000129 [      3a1c617a0a] mmap(0x3a1d600000, 2128984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3</usr/lib64/librt-2.16.so>, 0) = 0x3a1d600000
     0.000089 [      3a1c617a57] mprotect(0x3a1d607000, 2093056, PROT_NONE) = 0
     0.000065 [      3a1c617a0a] mmap(0x3a1d806000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3</usr/lib64/librt-2.16.so>, 0x6000) = 0x3a1d806000
     0.000111 [      3a1c6178f7] close(3</usr/lib64/librt-2.16.so>) = 0
     0.000095 [      3a1c6178d7] open("/lib64/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3
     0.000089 [      3a1c617917] read(3</usr/lib64/libcap.so.2.22>, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\25 !:\0\0\0"..., 832) = 832
     0.000085 [      3a1c617864] fstat(3</usr/lib64/libcap.so.2.22>, {st_mode=S_IFREG|0755, st_size=21424, ...}) = 0
     0.000081 [      3a1c617a0a] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f912e47d000
     0.000080 [      3a1c617a0a] mmap(0x3a21200000, 2114112, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3</usr/lib64/libcap.so.2.22>, 0) = 0x3a21200000
     0.000121 [      3a1c617a57] mprotect(0x3a21204000, 2093056, PROT_NONE) = 0
     0.000104 [      3a1c617a0a] mmap(0x3a21403000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3</usr/lib64/libcap.so.2.22>, 0x3000) = 0x3a21403000
     0.000124 [      3a1c6178f7] close(3</usr/lib64/libcap.so.2.22>) = 0
     0.000097 [      3a1c6178d7] open("/lib64/libacl.so.1", O_RDONLY|O_CLOEXEC) = 3
     0.000087 [      3a1c617917] read(3</usr/lib64/libacl.so.1.1.0>, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\37 5:\0\0\0"..., 832) = 832
     0.000091 [      3a1c617864] fstat(3</usr/lib64/libacl.so.1.1.0>, {st_mode=S_IFREG|0755, st_size=39192, ...}) = 0
     0.000088 [      3a1c617a0a] mmap(0x3a35200000, 2130560, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3</usr/lib64/libacl.so.1.1.0>, 0) = 0x3a35200000
     0.000082 [      3a1c617a57] mprotect(0x3a35207000, 2097152, PROT_NONE) = 0
     0.000070 [      3a1c617a0a] mmap(0x3a35407000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3</usr/lib64/libacl.so.1.1.0>, 0x7000) = 0x3a35407000
     0.000111 [      3a1c6178f7] close(3</usr/lib64/libacl.so.1.1.0>) = 0
     0.000089 [      3a1c6178d7] open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
     0.000087 [      3a1c617917] read(3</usr/lib64/libc-2.16.so>, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\33\242\34:\0\0\0"..., 832) = 832
     0.000177 [      3a1c617864] fstat(3</usr/lib64/libc-2.16.so>, {st_mode=S_IFREG|0755, st_size=2071376, ...}) = 0
     0.000134 [      3a1c617a0a] mmap(0x3a1ca00000, 3896312, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3</usr/lib64/libc-2.16.so>, 0) = 0x3a1ca00000
     0.000139 [      3a1c617a57] mprotect(0x3a1cbad000, 2097152, PROT_NONE) = 0
     0.000076 [      3a1c617a0a] mmap(0x3a1cdad000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3</usr/lib64/libc-2.16.so>, 0x1ad000) = 0x3a1cdad000
     0.000122 [      3a1c617a0a] mmap(0x3a1cdb3000, 17400, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3a1cdb3000
     0.000084 [      3a1c6178f7] close(3</usr/lib64/libc-2.16.so>) = 0
     0.000112 [      3a1c6178d7] open("/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3
     0.000099 [      3a1c617917] read(3</usr/lib64/libpcre.so.1.0.1>, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\35 \36:\0\0\0"..., 832) = 832
     0.000088 [      3a1c617864] fstat(3</usr/lib64/libpcre.so.1.0.1>, {st_mode=S_IFREG|0755, st_size=388152, ...}) = 0
     0.000116 [      3a1c617a0a] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f912e47c000
     0.000100 [      3a1c617a0a] mmap(0x3a1e200000, 2478664, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3</usr/lib64/libpcre.so.1.0.1>, 0) = 0x3a1e200000
     0.000102 [      3a1c617a57] mprotect(0x3a1e25c000, 2097152, PROT_NONE) = 0
     0.000078 [      3a1c617a0a] mmap(0x3a1e45c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3</usr/lib64/libpcre.so.1.0.1>, 0x5c000) = 0x3a1e45c000
     0.000111 [      3a1c6178f7] close(3</usr/lib64/libpcre.so.1.0.1>) = 0
     0.000092 [      3a1c6178d7] open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
     0.000092 [      3a1c617917] read(3</usr/lib64/libdl-2.16.so>, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\16 \35:\0\0\0"..., 832) = 832
     0.000087 [      3a1c617864] fstat(3</usr/lib64/libdl-2.16.so>, {st_mode=S_IFREG|0755, st_size=22440, ...}) = 0
     0.000084 [      3a1c617a0a] mmap(0x3a1d200000, 2109736, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3</usr/lib64/libdl-2.16.so>, 0) = 0x3a1d200000
     0.000085 [      3a1c617a57] mprotect(0x3a1d203000, 2093056, PROT_NONE) = 0
     0.000081 [      3a1c617a0a] mmap(0x3a1d402000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3</usr/lib64/libdl-2.16.so>, 0x2000) = 0x3a1d402000
     0.000107 [      3a1c6178f7] close(3</usr/lib64/libdl-2.16.so>) = 0
     0.000097 [      3a1c6178d7] open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
     0.000086 [      3a1c617917] read(3</usr/lib64/libpthread-2.16.so>, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360j\340\34:\0\0\0"..., 832) = 832
     0.000086 [      3a1c617864] fstat(3</usr/lib64/libpthread-2.16.so>, {st_mode=S_IFREG|0755, st_size=144552, ...}) = 0
     0.000087 [      3a1c617a0a] mmap(0x3a1ce00000, 2208808, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3</usr/lib64/libpthread-2.16.so>, 0) = 0x3a1ce00000
     0.000078 [      3a1c617a57] mprotect(0x3a1ce16000, 2097152, PROT_NONE) = 0
     0.000067 [      3a1c617a0a] mmap(0x3a1d016000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3</usr/lib64/libpthread-2.16.so>, 0x16000) = 0x3a1d016000
     0.000106 [      3a1c617a0a] mmap(0x3a1d018000, 13352, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3a1d018000
     0.000079 [      3a1c6178f7] close(3</usr/lib64/libpthread-2.16.so>) = 0
     0.000092 [      3a1c6178d7] open("/lib64/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3
     0.000085 [      3a1c617917] read(3</usr/lib64/libattr.so.1.1.0>, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\23 3:\0\0\0"..., 832) = 832
     0.000110 [      3a1c617864] fstat(3</usr/lib64/libattr.so.1.1.0>, {st_mode=S_IFREG|0755, st_size=22136, ...}) = 0
     0.000082 [      3a1c617a0a] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f912e47b000
     0.000077 [      3a1c617a0a] mmap(0x3a33200000, 2113880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3</usr/lib64/libattr.so.1.1.0>, 0) = 0x3a33200000
     0.000085 [      3a1c617a57] mprotect(0x3a33204000, 2093056, PROT_NONE) = 0
     0.000069 [      3a1c617a0a] mmap(0x3a33403000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3</usr/lib64/libattr.so.1.1.0>, 0x3000) = 0x3a33403000
     0.000108 [      3a1c6178f7] close(3</usr/lib64/libattr.so.1.1.0>) = 0
     0.000116 [      3a1c617a0a] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f912e47a000
     0.000077 [      3a1c617a0a] mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f912e478000
     0.000074 [      3a1c600fe0] arch_prctl(ARCH_SET_FS, 0x7f912e4787c0) = 0
     0.000171 [      3a1c617a57] mprotect(0x61a000, 4096, PROT_READ) = 0
     0.000094 [      3a1c617a57] mprotect(0x3a1e81e000, 4096, PROT_READ) = 0
     0.000072 [      3a1c617a57] mprotect(0x3a1d806000, 4096, PROT_READ) = 0
     0.000062 [      3a1c617a57] mprotect(0x3a21403000, 4096, PROT_READ) = 0
     0.000060 [      3a1c617a57] mprotect(0x3a35407000, 4096, PROT_READ) = 0
     0.000057 [      3a1c617a57] mprotect(0x3a1cdad000, 16384, PROT_READ) = 0
     0.000063 [      3a1c617a57] mprotect(0x3a1e45c000, 4096, PROT_READ) = 0
     0.000057 [      3a1c617a57] mprotect(0x3a1d402000, 4096, PROT_READ) = 0
     0.000177 [      3a1c617a57] mprotect(0x3a1c820000, 4096, PROT_READ) = 0
     0.000073 [      3a1c617a57] mprotect(0x3a1d016000, 4096, PROT_READ) = 0
     0.000062 [      3a1c617a57] mprotect(0x3a33403000, 4096, PROT_READ) = 0
     0.000067 [      3a1c617a37] munmap(0x7f912e47e000, 82561) = 0
     0.000127 [      3a1ce067b2] set_tid_address(0x7f912e478a90) = 24158
     0.000056 [      3a1ce0681a] set_robust_list(0x7f912e478aa0, 24) = 0
     0.000102 [      3a1ce0f105] rt_sigaction(SIGRTMIN, {0x3a1ce06650, [], SA_RESTORER|SA_SIGINFO, 0x3a1ce0f000}, NULL, 8) = 0
     0.000087 [      3a1ce0f105] rt_sigaction(SIGRT_1, {0x3a1ce066d0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x3a1ce0f000}, NULL, 8) = 0
     0.000067 [      3a1ce068fc] rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
     0.000065 [      3a1caeab47] getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
     0.000154 [      3a1cae52b7] statfs("/sys/fs/selinux", {f_type=0xf97cff8c, f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
     0.000130 [      3a1cae52b7] statfs("/sys/fs/selinux", {f_type=0xf97cff8c, f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
     0.000083 [      3a1cae50c5] stat("/sys/fs/selinux", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
     0.000186 [      3a1caeb06a] brk(0) = 0x1ef3000
     0.000060 [      3a1caeb06a] brk(0x1f14000) = 0x1f14000
     0.000151 [      3a1cae55a0] open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
     0.000091 [      3a1cae5114] fstat(3</usr/lib/locale/locale-archive>, {st_mode=S_IFREG|0644, st_size=104789808, ...}) = 0
     0.000095 [      3a1caeee1a] mmap(NULL, 104789808, PROT_READ, MAP_PRIVATE, 3</usr/lib/locale/locale-archive>, 0) = 0x7f9128088000
     0.000091 [      3a1ca2d5c9] close(3</usr/lib/locale/locale-archive>) = 0
     0.000125 [      3a1caea877] ioctl(1</dev/pts/2>, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
     0.000117 [      3a1caeb197] ioctl(1</dev/pts/2>, TIOCGWINSZ, {ws_row=33, ws_col=167, ws_xpixel=0, ws_ypixel=0}) = 0
     0.000132 [      3a1cae55a0] open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
     0.000092 [      3a1cae5114] fstat(3</usr/share/locale/locale.alias>, {st_mode=S_IFREG|0644, st_size=2444, ...}) = 0
     0.000089 [      3a1caeee1a] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f912e492000
     0.000069 [      3a1cae5790] read(3</usr/share/locale/locale.alias>, "# Locale name alias data base.\n#"..., 4096) = 2444
     0.000159 [      3a1cae5790] read(3</usr/share/locale/locale.alias>, "", 4096) = 0
     0.000078 [      3a1cae5730] close(3</usr/share/locale/locale.alias>) = 0
     0.000070 [      3a1caeee47] munmap(0x7f912e492000, 4096) = 0
     0.000114 [      3a1cae55a0] open("/usr/share/locale/en_US.UTF-8/LC_TIME/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
     0.000078 [      3a1cae55a0] open("/usr/share/locale/en_US.utf8/LC_TIME/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
     0.000072 [      3a1cae55a0] open("/usr/share/locale/en_US/LC_TIME/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
     0.000071 [      3a1cae55a0] open("/usr/share/locale/en.UTF-8/LC_TIME/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
     0.000066 [      3a1cae55a0] open("/usr/share/locale/en.utf8/LC_TIME/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
     0.000070 [      3a1cae55a0] open("/usr/share/locale/en/LC_TIME/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
     0.000095 [      3a1cae55a0] open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3
     0.000074 [      3a1cae5114] fstat(3</usr/lib64/gconv/gconv-modules.cache>, {st_mode=S_IFREG|0644, st_size=26254, ...}) = 0
     0.000102 [      3a1caeee1a] mmap(NULL, 26254, PROT_READ, MAP_SHARED, 3</usr/lib64/gconv/gconv-modules.cache>, 0) = 0x7f912e48c000
     0.000082 [      3a1ca2b087] close(3</usr/lib64/gconv/gconv-modules.cache>) = 0
     0.000069 [      3a1ce0cad9] futex(0x3a1cdb2a50, FUTEX_WAKE_PRIVATE, 2147483647) = 0
     0.000122 [      3a1cae5600] openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
     0.000082 [      3a1cab79e5] getdents(3</tmp/test>, /* 3 entries */, 32768) = 80
     0.000104 [      3a1cae5165] lstat("test.txt", {st_mode=S_IFREG|0664, st_size=0, ...}) = 0
     0.000077 [      3a1caf224a] lgetxattr("test.txt", "security.selinux", "unconfined_u:object_r:user_tmp_t:s0", 255) = 36
     0.000127 [      3a1cae55a0] open("/sys/fs/selinux/mls", O_RDONLY) = 4
     0.000090 [      3a1cae5790] read(4</sys/fs/selinux/mls>, "1", 19) = 1
     0.000086 [      3a1cae5730] close(4</sys/fs/selinux/mls>) = 0
     0.000068 [      3a1ce0cad9] futex(0x3a1e8217a8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
     0.000061 [      3a1caf36c7] socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC, 0) = 4
     0.000202 [      3a1caf3270] connect(4, {sa_family=AF_FILE, sun_path="/var/run/setrans/.setrans-unix"}, 110) = -1 ENOENT (No such file or directory)
     0.000117 [      3a1cae5730] close(4<socket:[5783501]>) = 0
     0.000108 [      3a1caeeca9] getxattr("test.txt", "system.posix_acl_access", 0x0, 0) = -1 ENODATA (No data available)
     0.000083 [      3a1caeeca9] getxattr("test.txt", "system.posix_acl_default", 0x0, 0) = -1 ENODATA (No data available)
     0.000090 [      3a1caf36c7] socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 4
     0.000159 [      3a1caf3270] connect(4, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
     0.000085 [      3a1cb2aa5b] close(4<socket:[5783502]>) = 0
     0.000084 [      3a1caf36c7] socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 4
     0.000182 [      3a1caf3270] connect(4, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
     0.000093 [      3a1cb2aa5b] close(4<socket:[5783503]>) = 0
     0.000112 [      3a1cae55a0] open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 4
     0.000130 [      3a1cae5114] fstat(4</etc/nsswitch.conf>, {st_mode=S_IFREG|0644, st_size=1729, ...}) = 0
     0.000083 [      3a1caeee1a] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f912e48b000
     0.000073 [      3a1cae5790] read(4</etc/nsswitch.conf>, "#\n# /etc/nsswitch.conf\n#\n# An ex"..., 4096) = 1729
     0.000125 [      3a1cae5790] read(4</etc/nsswitch.conf>, "", 4096) = 0
     0.000072 [      3a1cae5730] close(4</etc/nsswitch.conf>) = 0
     0.000068 [      3a1caeee47] munmap(0x7f912e48b000, 4096) = 0
     0.000099 [      3a1c6178d7] open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 4
     0.000101 [      3a1c617864] fstat(4</etc/ld.so.cache>, {st_mode=S_IFREG|0644, st_size=82561, ...}) = 0
     0.000081 [      3a1c617a0a] mmap(NULL, 82561, PROT_READ, MAP_PRIVATE, 4</etc/ld.so.cache>, 0) = 0x7f9128073000
     0.000075 [      3a1c6178f7] close(4</etc/ld.so.cache>) = 0
     0.000088 [      3a1c6178d7] open("/lib64/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 4
     0.000078 [      3a1c617917] read(4</usr/lib64/libnss_files-2.16.so>, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340!\0\0\0\0\0\0"..., 832) = 832
     0.000092 [      3a1c617864] fstat(4</usr/lib64/libnss_files-2.16.so>, {st_mode=S_IFREG|0755, st_size=62416, ...}) = 0
     0.000091 [      3a1c617a0a] mmap(NULL, 2148456, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4</usr/lib64/libnss_files-2.16.so>, 0) = 0x7f9127e66000
     0.000080 [      3a1c617a57] mprotect(0x7f9127e72000, 2093056, PROT_NONE) = 0
     0.000068 [      3a1c617a0a] mmap(0x7f9128071000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4</usr/lib64/libnss_files-2.16.so>, 0xb000) = 0x7f9128071000
     0.000107 [      3a1c6178f7] close(4</usr/lib64/libnss_files-2.16.so>) = 0
     0.000124 [      3a1c617a57] mprotect(0x7f9128071000, 4096, PROT_READ) = 0
     0.000093 [      3a1c617a37] munmap(0x7f9128073000, 82561) = 0
     0.000100 [      3a1cae55a0] open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 4
     0.000092 [      3a1cae5114] fstat(4</etc/passwd>, {st_mode=S_IFREG|0644, st_size=2227, ...}) = 0
     0.000081 [      3a1caeee1a] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f912e48b000
     0.000067 [      3a1cae5790] read(4</etc/passwd>, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 2227
     0.000127 [      3a1cae5730] close(4</etc/passwd>) = 0
     0.000072 [      3a1caeee47] munmap(0x7f912e48b000, 4096) = 0
     0.000095 [      3a1caf36c7] socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 4
     0.000178 [      3a1caf3270] connect(4, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
     0.000098 [      3a1cb2aa5b] close(4<socket:[5783504]>) = 0
     0.000105 [      3a1caf36c7] socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 4
     0.000166 [      3a1caf3270] connect(4, {sa_family=AF_FILE, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
     0.000084 [      3a1cb2aa5b] close(4<socket:[5783505]>) = 0
     0.000096 [      3a1cae55a0] open("/etc/group", O_RDONLY|O_CLOEXEC) = 4
     0.000077 [      3a1cae5114] fstat(4</etc/group>, {st_mode=S_IFREG|0644, st_size=887, ...}) = 0
     0.000088 [      3a1caeee1a] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f912e48b000
     0.000068 [      3a1cae5790] read(4</etc/group>, "root:x:0:\nbin:x:1:\ndaemon:x:2:\ns"..., 4096) = 887
     0.000115 [      3a1cae5730] close(4</etc/group>) = 0
     0.000069 [      3a1caeee47] munmap(0x7f912e48b000, 4096) = 0
     0.000076 [      3a1cab79e5] getdents(3</tmp/test>, /* 0 entries */, 32768) = 0
     0.000083 [      3a1cae5730] close(3</tmp/test>) = 0
     0.000124 [      3a1cae55a0] open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
     0.000077 [      3a1cae55a0] open("/usr/share/locale/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
     0.000066 [      3a1cae55a0] open("/usr/share/locale/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
     0.000077 [      3a1cae55a0] open("/usr/share/locale/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
     0.000066 [      3a1cae55a0] open("/usr/share/locale/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
     0.000065 [      3a1cae55a0] open("/usr/share/locale/en/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
     0.000076 [      3a1cae5114] fstat(1</dev/pts/2>, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 2), ...}) = 0
     0.000082 [      3a1caeee1a] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f912e48b000
     0.000082 [      3a1cae57f0] write(1</dev/pts/2>, "total 0\n", 8total 0
) = 8
     0.000119 [      3a1cae55a0] open("/etc/localtime", O_RDONLY|O_CLOEXEC) = 3
     0.000087 [      3a1cae5114] fstat(3</usr/share/zoneinfo/America/New_York>, {st_mode=S_IFREG|0644, st_size=3519, ...}) = 0
     0.000084 [      3a1cae5114] fstat(3</usr/share/zoneinfo/America/New_York>, {st_mode=S_IFREG|0644, st_size=3519, ...}) = 0
     0.000114 [      3a1caeee1a] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f912e48a000
     0.000069 [      3a1cae5790] read(3</usr/share/zoneinfo/America/New_York>, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0"..., 4096) = 3519
     0.000104 [      3a1caf2570] lseek(3</usr/share/zoneinfo/America/New_York>, -2252, SEEK_CUR) = 1267
     0.000113 [      3a1cae5790] read(3</usr/share/zoneinfo/America/New_York>, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\5\0\0\0\0"..., 4096) = 2252
     0.000105 [      3a1caf2570] lseek(3</usr/share/zoneinfo/America/New_York>, 3518, SEEK_SET) = 3518
     0.000071 [      3a1cae5730] close(3</usr/share/zoneinfo/America/New_York>) = 0
     0.000076 [      3a1caeee47] munmap(0x7f912e48a000, 4096) = 0
     0.000120 [      3a1cae57f0] write(1</dev/pts/2>, "-rw-rw-r--. 1 jiang jiang 0 Jul "..., 50-rw-rw-r--. 1 jiang jiang 0 Jul 31 11:49 test.txt
) = 50
     0.000103 [      3a1cae5730] close(1</dev/pts/2>) = 0
     0.000065 [      3a1caeee47] munmap(0x7f912e48b000, 4096) = 0
     0.000069 [      3a1cae5730] close(2</dev/pts/2>) = 0
     0.000148 [      3a1cabb839] exit_group(0) = ?
     0.000309 [????????????????] +++ exited with 0 +++


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`strace` 是一个强大的工具,它用于跟踪和记录程序执行期间系统调用以及系统调用接收的信号。它的用途非常广泛,从诊断程序错误、理解底层系统交互、调试复杂程序到性能分析等方面都能发挥作用。 ### 简介 `strace` 的全称是 "System Trace",它允许程序员观察应用程序的行为及其对系统调用,这包括打开文件、读取文件、发送信号等系统级别的动作。这对于调试和了解应用程序是如何与操作系统进行互动的非常重要。 ### 基本使用方法 要使用 `strace` 来跟踪特定程序的系统调用,只需要在程序之前加上 `strace`,如下所示: ```bash strace ./your_program ``` 这里的 `/your_program` 替换为你想要跟踪的可执行文件的路径。 ### 输出详解 `strace` 的输出通常包含很多信息,其中关键的部分有: - **系统调用时间戳**:显示每个系统调用的发生时刻。 - **调用名**:系统调用的名称,如 `open`, `read`, `write`, `sendmsg` 等。 - **参数**:传入调用的参数列表。 - **返回值**:调用的结果,成功时通常为正数,失败时可能为负数,并附带错误码。 - **附加信息**:有时还包括额外的信息,比如错误消息或文件描述符的状态等。 ### 示例 下面是一个简单的例子: ```bash $ strace -o trace.out ./example_program ``` 这里,`-o trace.out` 指定将输出重定向到名为 `trace.out` 的文件中,方便后续查看和分析。 ### 为什么使用 `strace`? 1. **调试问题**:当你遇到程序无法正常启动的问题时,`strace` 可以帮助你确定是哪些系统调用导致了错误,提供问题定位的重要线索。 2. **性能分析**:通过详细记录每一个系统调用的过程,你可以分析出程序在哪些方面消耗了更多系统资源,从而针对性地优化程序。 3. **深入了解程序行为**:对于那些依赖于底层系统功能的程序来说,`strace` 提供了对其与系统交互机制的透明化视图。 ### 相关问题: 1. **如何解析 `strace` 的输出数据以找到问题所在?** 2. **是否可以在不中断程序运行的情况下使用 `strace` 同时跟踪多个进程?** 3. **在哪些场景下使用 `strace` 最有效率?** 通过使用 `strace`,程序员能够深入理解和控制程序与系统的交互细节,从而提高程序的稳定性和效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值