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非常强大,以后可以再工作中经常使用。
- linux中的strace
- Linux中的strace
- strace 命令中的Linux命令
- linux中的strace|pstack工具的使用
- linux strace
- linux---strace
- linux中的strace命令简介------定位core dump问题
- linux的strace命令
- linux strace 进程跟踪
- Linux模块跟踪Strace
- Linux strace 命令 说明
- linux strace 进程跟踪
- Linux strace 命令 说明
- Linux利器 strace
- [转]Linux strace 命令
- ARM linux strace 安装
- linux strace命令
- Linux strace 命令 说明
- php小结
- 数据加载的bigpipe
- ubuntu12.10下快速安装配置android开发环境
- 基于CyberGarage库的dlna开发(android)
- T-SQL基本语句
- linux中的strace
- SQL server 2005学习
- 微信公众帐号开发教程第12篇-符号表情的发送(下)
- Linux 命令
- Android:解决 Your project contains error(s),please fix them before running your application问题
- delphi char数组、string和Pchar的相互转换
- 读懂电影专业名词(转自CMCT-PT)
- JAVA中string.repalce()和string.replaceAll()区别
- Windows服务之服务控制程序