美文网首页
strace命令

strace命令

作者: 大胡子商人 | 来源:发表于2018-03-07 15:41 被阅读23次

strace使用:
    strace mysql(最简单的用法,能找到命令的系统调用,会记录和解析命令进程的所有系统调用以及这个进程所接收到的所有的信号值,每一行都是一条系统调用,等号左边是系统调用的函数名及其参数,右边是该调用的返回值)
    strace -o strace.txt -T -tt -e trace=all -p 3306

    参数说明:
         -c         #统计每一系统调用的所执行的时间,次数和出错的次数等. 
         -C         #Like -c but also print regular output while processes are running
         -d         #输出strace自身的关于标准错误的调试信息. 
         -f         #跟踪由fork调用所产生的子进程. 
         -ff            #如果提供-o filename,则所有进程的跟踪结果输出到相应的filename.pid中,pid是各进程的进程号. 此与-c不兼容
         -h         #输出简要的帮助信息. 
         -i         #打印系统调用时候的入口指针. 
         -q         #禁止输出关于脱离的消息. 
         -r         #进入每一个系统调用时打印一个相对时间戳,一个系统调用的开始和下一个系统调用接替时,两者之间的时间. 
         -t         #在输出中的每一行前加上时间信息. 
         -tt            #时间信息精确到微妙
         -ttt           #时间信息精确到微妙,而且时间表示为unix时间戳
         -T         #显示每一调用所耗的时间. 
         -v         #Print unabbreviated versions of environment, stat, termios, etc.  calls
         -V         #输出strace的版本信息. 
         -x         #打印所有非ascii字符串以十六进制字符串格式显示。
         -xx            #所有字符串以十六进制形式输出. 
         -a column      #设置返回值的输出位置.默认 为40. 
         -e expr        #指定一个表达式,用来控制如何跟踪.格式如下: 
        [qualifier=][!]value1[,value2]... 
        qualifier只能是 trace,abbrev,verbose,raw,signal,read,write其中之一.value是用来限定的符号或数字.默认的 qualifier是 trace.感叹号是否定符号.例如: -eopen等价于 -e trace=open,表示只跟踪open调用.而-etrace!=open表示跟踪除了open以外的其他调用.有两个特殊的符号 all 和 none. 注意有些shell使用!来执行历史记录里的命令,所以要使用反斜杠
         -e trace=set       #只跟踪指定的系统调用.例如:-e trace=open,close,rean,write表示只跟踪这四个系统调用.默认的为set=all. 
         -e trace=file      #只跟踪有关文件操作的系统调用. 
         -e trace=process   #只跟踪有关进程控制的系统调用. 
         -e trace=network   #跟踪与网络有关的所有系统调用. 
         -e strace=signal   #跟踪所有与系统信号有关的 系统调用 
         -e trace=ipc       #跟踪所有与进程通讯有关的系统调用 
         -e abbrev=set      #设定 strace输出的系统调用的结果集.-v等与abbrev=none.默认为abbrev=all. 
         -e raw=set     #将指 定的系统调用的参数以十六进制显示. 
         -e signal=set      #指定跟踪的系统信号.默认为all.如 signal=!SIGIO(或者signal=!io),表示不跟踪SIGIO信号. 
         -e read=set        #输出从指定文件中读出的数据.例如: -e read=3,5 
         -e write=set       #输出写入到指定文件中的数据. 
         -o filename        #将strace的输出写入文件filename 
         -O overhead        #设置追踪系统的总开销(microseconds)
         -p pid         #跟踪指定的进程pid. 
         -s strsize     #指定输出的字符串的最大长度.默认为32.文件名一直全部输出. 
         -S sortby      #-c选项的输出以规定的标准显示为直方图
         -u username        #以username 的UID和GID执行被跟踪的命令

相关文章

  • strace命令

  • strace 命令

    strace常用来跟踪进程执行时的系统调用和所接收的信号。 普通函数调用需要耗费的时间 一次系统调用需要耗费的时间...

  • strace命令

    [TOC] strace 跟踪进程中的系统调用 strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Li...

  • 使用strace命令

    strace命令是一个集诊断、调试、统计与一体的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果...

  • Linux strace命令

    简介 strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进...

  • 使用strace排查sqlplus登录缓慢问题

    strace安装 strace命令使用 在日志文件中,可以根据时间排查到卡住的地方 往前找几行可以看到是连接某个I...

  • 【CentOS】CentOS7中修改创建账号时系统默认UID、G

    strace命令详解 https://www.cnblogs.com/machangwei-8/p/1038888...

  • Strace 调试 PHP

    strace 命令是一个集诊断、调试、统计与一体的工具,我们可以使用 strace 对应用的系统调用和信号传递的跟...

  • ls等io操作卡死处理办法

    strace 命令跟踪,定位问题。首先使用命令跟踪, 查看执行到哪一步卡死: 可以看到,命令执行到 /mnt这个目...

  • strace 命令学习笔记

    之前在一些关于 BackDoor 的文章中见到过通过 strace 来截获 ssh 密码 https://jvns...

网友评论

      本文标题:strace命令

      本文链接:https://www.haomeiwen.com/subject/llgjfftx.html