linux中的strace

来源:互联网 发布:淘宝退货卖家拒签 编辑:程序博客网 时间:2024/06/06 08:28

         最近在看Brendan Gregg的Linux Performance Analysis and Tools在里面看到很多平时使用很少但是很强大的工具,如strace。

         strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)

时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。

      

         strace命令参数

-p 跟踪指定的进程

-f 跟踪由fork子进程系统调用

-F 尝试跟踪vfork子进程系统调吸入,与-f同时出现时, vfork不被跟踪

-o filename 默认strace将结果输出到stdout。通过-o可以将输出写入到filename文件中

-ff 常与-o选项一起使用,不同进程(子进程)产生的系统调用输出到filename.PID文件

-r 打印每一个系统调用的相对时间-t 在输出中的每一行前加上时间信息。

-tt 时间确定到微秒级。还可以使用-ttt打印相对时间-v 输出所有系统调用。默认情况下,一些频繁调用的系统调用不会输出

-s 指定每一行输出字符串的长度,默认是32。文件名一直全部输出

-c 统计每种系统调用所执行的时间,调用次数,出错次数。

-e expr 输出过滤器,通过表达式,可以过滤出掉你不想要输出      

 

strace基本使用

追踪系统调用

[root@centos6-mysql-172 ~]# strace dd if=/dev/zero of=/dev/sde bs=1 count=2execve("/bin/dd", ["dd", "if=/dev/zero", "of=/dev/sde", "bs=1", "count=2"], [/* 26 vars */]) = 0brk(0)                                  = 0x2428000mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe3aac74000access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3fstat(3, {st_mode=S_IFREG|0644, st_size=41917, ...}) = 0mmap(NULL, 41917, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fe3aac69000close(3)                                = 0open("/lib64/librt.so.1", O_RDONLY|O_CLOEXEC) = 3read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 #\240\244;\0\0\0"..., 832) = 832fstat(3, {st_mode=S_IFREG|0755, st_size=45690, ...}) = 0mmap(0x3ba4a00000, 2128888, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3ba4a00000mprotect(0x3ba4a07000, 2093056, PROT_NONE) = 0mmap(0x3ba4c06000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x3ba4c06000close(3)                                = 0open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\34\242\243;\0\0\0"..., 832) = 832fstat(3, {st_mode=S_IFREG|0755, st_size=2013456, ...}) = 0mmap(0x3ba3a00000, 3861056, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3ba3a00000mprotect(0x3ba3ba5000, 2097152, PROT_NONE) = 0mmap(0x3ba3da5000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a5000) = 0x3ba3da5000mmap(0x3ba3dab000, 14912, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3ba3dab000close(3)                                = 0open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20o\340\243;\0\0\0"..., 832) = 832fstat(3, {st_mode=S_IFREG|0755, st_size=144698, ...}) = 0mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe3aac68000mmap(0x3ba3e00000, 2217104, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3ba3e00000mprotect(0x3ba3e18000, 2097152, PROT_NONE) = 0mmap(0x3ba4018000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0x3ba4018000mmap(0x3ba401a000, 13456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3ba401a000close(3)                                = 0mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe3aac67000mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe3aac66000mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe3aac65000arch_prctl(ARCH_SET_FS, 0x7fe3aac66700) = 0mprotect(0x3ba4c06000, 4096, PROT_READ) = 0mprotect(0x3ba3da5000, 16384, PROT_READ) = 0mprotect(0x3ba4018000, 4096, PROT_READ) = 0mprotect(0x3ba341f000, 4096, PROT_READ) = 0munmap(0x7fe3aac69000, 41917)           = 0set_tid_address(0x7fe3aac669d0)         = 1621set_robust_list(0x7fe3aac669e0, 0x18)   = 0rt_sigaction(SIGRTMIN, {0x3ba3e069f0, [], SA_RESTORER|SA_SIGINFO, 0x3ba3e0f9f0}, NULL, 8) = 0rt_sigaction(SIGRT_1, {0x3ba3e06a80, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x3ba3e0f9f0}, NULL, 8) = 0rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0rt_sigaction(SIGUSR1, NULL, {SIG_DFL, [], 0}, 8) = 0rt_sigaction(SIGINT, NULL, {SIG_DFL, [], 0}, 8) = 0rt_sigaction(SIGUSR1, {0x401be0, [INT USR1], SA_RESTORER, 0x3ba3a358d0}, NULL, 8) = 0rt_sigaction(SIGINT, {0x401bd0, [INT USR1], SA_RESTORER|SA_NODEFER|SA_RESETHAND, 0x3ba3a358d0}, NULL, 8) = 0brk(0)                                  = 0x2428000brk(0x2449000)                          = 0x2449000open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3fstat(3, {st_mode=S_IFREG|0644, st_size=99158576, ...}) = 0mmap(NULL, 99158576, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fe3a4dd4000close(3)                                = 0open("/dev/zero", O_RDONLY)             = 3dup2(3, 0)                              = 0close(3)                                = 0lseek(0, 0, SEEK_CUR)                   = 0open("/dev/sde", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3dup2(3, 1)                              = 1close(3)                                = 0read(0, "\0", 1)                        = 1write(1, "\0", 1)                       = 1read(0, "\0", 1)                        = 1write(1, "\0", 1)                       = 1close(0)                                = 0close(1)                                = 0open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 0fstat(0, {st_mode=S_IFREG|0644, st_size=2512, ...}) = 0mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe3aac73000read(0, "# Locale name alias data base.\n#"..., 4096) = 2512read(0, "", 4096)                       = 0close(0)                                = 0munmap(0x7fe3aac73000, 4096)            = 0open("/usr/share/locale-langpack/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-bundle/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-langpack/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-bundle/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-langpack/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-bundle/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-langpack/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-bundle/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-langpack/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-bundle/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-langpack/en/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en/LC_MESSAGES/coreutils.mo", O_RDONLY) = 0fstat(0, {st_mode=S_IFREG|0644, st_size=435, ...}) = 0mmap(NULL, 435, PROT_READ, MAP_PRIVATE, 0, 0) = 0x7fe3aac73000close(0)                                = 0write(2, "2+0 records in\n2+0 records out\n", 312+0 records in2+0 records out) = 31write(2, "2 bytes (2 B) copied", 202 bytes (2 B) copied)    = 20write(2, ", 0.00441172 s, 0.5 kB/s\n", 25, 0.00441172 s, 0.5 kB/s) = 25close(2)                                = 0exit_group(0)                           = ?


系统调用统计

 

[root@centos6-mysql-172 ~]# strace -c dd if=/dev/zero of=/dev/sde bs=1 count=2                                                                                                                                                             2+0 records in2+0 records out2 bytes (2 B) copied, 0.00324359 s, 0.6 kB/s% time     seconds  usecs/call     calls    errors syscall------ ----------- ----------- --------- --------- ----------------100.00    0.000062           9         7           mprotect  0.00    0.000000           0         7           read  0.00    0.000000           0         5           write  0.00    0.000000           0        25        16 open  0.00    0.000000           0        12           close  0.00    0.000000           0         7           fstat  0.00    0.000000           0         1           lseek  0.00    0.000000           0        17           mmap  0.00    0.000000           0         2           munmap  0.00    0.000000           0         3           brk  0.00    0.000000           0         6           rt_sigaction  0.00    0.000000           0         1           rt_sigprocmask  0.00    0.000000           0         1         1 access  0.00    0.000000           0         2           dup2  0.00    0.000000           0         1           execve  0.00    0.000000           0         1           getrlimit  0.00    0.000000           0         1           arch_prctl  0.00    0.000000           0         1           set_tid_address  0.00    0.000000           0         1           set_robust_list------ ----------- ----------- --------- --------- ----------------100.00    0.000062                   101        17 total


这里可以看见一些errors,返回查看上面追踪系统调用中的信息,关于open系统调用的错误信息如下:

open("/usr/share/locale-langpack/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-bundle/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-langpack/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-bundle/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-langpack/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-bundle/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-langpack/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-bundle/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-langpack/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-bundle/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale-langpack/en/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)


关于access系统调用的错误信息如下:

access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)

 

对系统调用进行计时

[root@centos6-mysql-172 ~]# strace -tttT  dd if=/dev/zero of=/dev/sde bs=1 count=2                                                                                                                                                        1383203290.606138 execve("/bin/dd", ["dd", "if=/dev/zero", "of=/dev/sde", "bs=1", "count=2"], [/* 26 vars */]) = 0 <0.000170>1383203290.606919 brk(0)                = 0x11cd000 <0.000018>1383203290.607294 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ffcbed79000 <0.000023>1383203290.607593 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) <0.000023>1383203290.607857 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 <0.000025>1383203290.608043 fstat(3, {st_mode=S_IFREG|0644, st_size=41917, ...}) = 0 <0.000019>1383203290.608249 mmap(NULL, 41917, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ffcbed6e000 <0.000023>1383203290.608409 close(3)              = 0 <0.000018>1383203290.608591 open("/lib64/librt.so.1", O_RDONLY|O_CLOEXEC) = 3 <0.000067>1383203290.608920 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 #\240\244;\0\0\0"..., 832) = 832 <0.000015>1383203290.609098 fstat(3, {st_mode=S_IFREG|0755, st_size=45690, ...}) = 0 <0.000013>1383203290.609294 mmap(0x3ba4a00000, 2128888, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3ba4a00000 <0.000018>1383203290.609463 mprotect(0x3ba4a07000, 2093056, PROT_NONE) = 0 <0.000018>1383203290.609636 mmap(0x3ba4c06000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x3ba4c06000 <0.000023>1383203290.609783 close(3)              = 0 <0.000017>1383203290.610056 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 <0.000021>1383203290.610232 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\34\242\243;\0\0\0"..., 832) = 832 <0.000014>1383203290.610429 fstat(3, {st_mode=S_IFREG|0755, st_size=2013456, ...}) = 0 <0.000013>1383203290.610611 mmap(0x3ba3a00000, 3861056, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3ba3a00000 <0.000024>1383203290.610836 mprotect(0x3ba3ba5000, 2097152, PROT_NONE) = 0 <0.000017>1383203290.610903 mmap(0x3ba3da5000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a5000) = 0x3ba3da5000 <0.000028>1383203290.611071 mmap(0x3ba3dab000, 14912, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3ba3dab000 <0.000026>1383203290.611281 close(3)              = 0 <0.000018>1383203290.611448 open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 <0.000027>1383203290.611642 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20o\340\243;\0\0\0"..., 832) = 832 <0.000021>1383203290.611848 fstat(3, {st_mode=S_IFREG|0755, st_size=144698, ...}) = 0 <0.000036>1383203290.612041 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ffcbed6d000 <0.000021>1383203290.612219 mmap(0x3ba3e00000, 2217104, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3ba3e00000 <0.000024>1383203290.612403 mprotect(0x3ba3e18000, 2097152, PROT_NONE) = 0 <0.000024>1383203290.612561 mmap(0x3ba4018000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0x3ba4018000 <0.000064>1383203290.612878 mmap(0x3ba401a000, 13456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3ba401a000 <0.000020>1383203290.613074 close(3)              = 0 <0.000012>1383203290.613170 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ffcbed6c000 <0.000035>1383203290.613455 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ffcbed6b000 <0.000021>1383203290.613767 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ffcbed6a000 <0.000021>1383203290.614042 arch_prctl(ARCH_SET_FS, 0x7ffcbed6b700) = 0 <0.000018>1383203290.614288 mprotect(0x3ba4c06000, 4096, PROT_READ) = 0 <0.000024>1383203290.614565 mprotect(0x3ba3da5000, 16384, PROT_READ) = 0 <0.000018>1383203290.614770 mprotect(0x3ba4018000, 4096, PROT_READ) = 0 <0.000018>1383203290.614840 mprotect(0x3ba341f000, 4096, PROT_READ) = 0 <0.000015>1383203290.615002 munmap(0x7ffcbed6e000, 41917) = 0 <0.000025>1383203290.615199 set_tid_address(0x7ffcbed6b9d0) = 1640 <0.000012>1383203290.615363 set_robust_list(0x7ffcbed6b9e0, 0x18) = 0 <0.000012>1383203290.615436 rt_sigaction(SIGRTMIN, {0x3ba3e069f0, [], SA_RESTORER|SA_SIGINFO, 0x3ba3e0f9f0}, NULL, 8) = 0 <0.000019>1383203290.615764 rt_sigaction(SIGRT_1, {0x3ba3e06a80, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x3ba3e0f9f0}, NULL, 8) = 0 <0.000013>1383203290.615968 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 <0.000013>1383203290.616132 getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0 <0.000013>1383203290.616382 rt_sigaction(SIGUSR1, NULL, {SIG_DFL, [], 0}, 8) = 0 <0.000018>1383203290.616560 rt_sigaction(SIGINT, NULL, {SIG_DFL, [], 0}, 8) = 0 <0.000019>1383203290.616892 rt_sigaction(SIGUSR1, {0x401be0, [INT USR1], SA_RESTORER, 0x3ba3a358d0}, NULL, 8) = 0 <0.000013>1383203290.617087 rt_sigaction(SIGINT, {0x401bd0, [INT USR1], SA_RESTORER|SA_NODEFER|SA_RESETHAND, 0x3ba3a358d0}, NULL, 8) = 0 <0.000013>1383203290.617391 brk(0)                = 0x11cd000 <0.000017>1383203290.617631 brk(0x11ee000)        = 0x11ee000 <0.000022>1383203290.617864 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 <0.000022>1383203290.618036 fstat(3, {st_mode=S_IFREG|0644, st_size=99158576, ...}) = 0 <0.000013>1383203290.618227 mmap(NULL, 99158576, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ffcb8ed9000 <0.000017>1383203290.618393 close(3)              = 0 <0.000011>1383203290.618547 open("/dev/zero", O_RDONLY) = 3 <0.000026>1383203290.618848 dup2(3, 0)            = 0 <0.000016>1383203290.619015 close(3)              = 0 <0.000016>1383203290.619245 lseek(0, 0, SEEK_CUR) = 0 <0.000013>1383203290.619418 open("/dev/sde", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3 <0.000031>1383203290.619616 dup2(3, 1)            = 1 <0.000011>1383203290.619674 close(3)              = 0 <0.000016>1383203290.619874 read(0, "\0", 1)      = 1 <0.000016>1383203290.620054 write(1, "\0", 1)     = 1 <0.000677>1383203290.620797 read(0, "\0", 1)      = 1 <0.000018>1383203290.620967 write(1, "\0", 1)     = 1 <0.000017>1383203290.621126 close(0)              = 0 <0.000013>1383203290.621185 close(1)              = 0 <0.002093>1383203290.623483 open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 0 <0.000026>1383203290.624271 fstat(0, {st_mode=S_IFREG|0644, st_size=2512, ...}) = 0 <0.000012>1383203290.624540 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ffcbed78000 <0.000015>1383203290.624610 read(0, "# Locale name alias data base.\n#"..., 4096) = 2512 <0.000027>1383203290.626948 read(0, "", 4096)     = 0 <0.000014>1383203290.627034 close(0)              = 0 <0.000012>1383203290.627091 munmap(0x7ffcbed78000, 4096) = 0 <0.000020>1383203290.627201 open("/usr/share/locale-langpack/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000018>1383203290.627285 open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000015>1383203290.627360 open("/usr/share/locale-bundle/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000015>1383203290.627434 open("/usr/share/locale-langpack/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000014>1383203290.627504 open("/usr/share/locale/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000014>1383203290.628663 open("/usr/share/locale-bundle/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000067>1383203290.628806 open("/usr/share/locale-langpack/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000015>1383203290.628881 open("/usr/share/locale/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000021>1383203290.629071 open("/usr/share/locale-bundle/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000015>1383203290.629145 open("/usr/share/locale-langpack/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000014>1383203290.629215 open("/usr/share/locale/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000014>1383203290.629287 open("/usr/share/locale-bundle/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000013>1383203290.629359 open("/usr/share/locale-langpack/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000014>1383203290.629429 open("/usr/share/locale/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000014>1383203290.629501 open("/usr/share/locale-bundle/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000013>1383203290.629573 open("/usr/share/locale-langpack/en/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000014>1383203290.629642 open("/usr/share/locale/en/LC_MESSAGES/coreutils.mo", O_RDONLY) = 0 <0.000017>1383203290.629757 fstat(0, {st_mode=S_IFREG|0644, st_size=435, ...}) = 0 <0.000012>1383203290.629930 mmap(NULL, 435, PROT_READ, MAP_PRIVATE, 0, 0) = 0x7ffcbed78000 <0.000015>1383203290.629996 close(0)              = 0 <0.000011>1383203290.630089 write(2, "2+0 records in\n2+0 records out\n", 312+0 records in2+0 records out) = 31 <0.000199>1383203290.630362 write(2, "2 bytes (2 B) copied", 202 bytes (2 B) copied) = 20 <0.000016>1383203290.630467 write(2, ", 0.00359507 s, 0.6 kB/s\n", 25, 0.00359507 s, 0.6 kB/s) = 25 <0.000185>1383203290.630769 close(2)              = 0 <0.000011>1383203290.630845 exit_group(0)         = ?


跟踪一个现有的进程

[root@centos6-mysql-172 ~]# strace -p 1645Process 1645 attached - interrupt to quitread(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1048576) = 1048576write(1, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1048576) = 1048576read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1048576) = 1048576write(1, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1048576) = 1048576read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1048576) = 1048576write(1, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1048576) = 1048576read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1048576) = 1048576write(1, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1048576) = 1048576read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1048576) = 1048576write(1, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1048576) = 1048576read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1048576) = 1048576


strace非常强大,以后可以再工作中经常使用。

 

原创粉丝点击