日历

2015年二月
« 12月   3月 »
 1
2345678
9101112131415
16171819202122
232425262728  

最近评论

    linux/unix基础知识

    Linux strace命令

    strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。
    输出参数含义

    root@ubuntu:/usr# strace cat /dev/null
    execve(“/bin/cat”, [“cat”, “/dev/null”], [/* 22 vars */]) = 0
    brk(0)                                  = 0xab1000
    access(“/etc/ld.so.nohwcap”, F_OK)      = -1 ENOENT (No such file or directory)
    mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29379a7000
    access(“/etc/ld.so.preload”, R_OK)      = -1 ENOENT (No such file or directory)

    brk(0) = 0xab1000
    brk(0xad2000) = 0xad2000
    fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), …}) = 0
    open(“/dev/null”, O_RDONLY) = 3
    fstat(3, {st_mode=S_IFCHR|0666, […]