strace

网友投稿 562 2022-11-11

strace

strace

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

shell> strace -tt -T -v -f -p 21161

strace常用选项:从一个示例命令来看:strace -tt -T -v -f -e trace=file -o /data/log/strace.log -s 1024 -p 23489-tt 在每行输出的前面,显示毫秒级别的时间-T 显示每次系统调用所花费的时间-v 对于某些相关调用,把完整的环境变量,文件stat结构等打出来。-f 跟踪目标进程,以及目标进程创建的所有子进程-e 控制要跟踪的事件和跟踪行为,比如指定要跟踪的系统调用名称-o 把strace的输出单独写到指定的文件-s 当系统调用的某个参数是字符串时,最多输出指定长度的内容,默认是32个字节-p 指定要跟踪的进程pid, 要同时跟踪多个pid, 重复多次-p选项即可。实例:跟踪nginx, 看其启动时都访问了哪些文件strace -tt -T -f -e trace=file -o /data/log/strace.log -s 1024 ./nginx部分输出: 输出中,第一列显示的是进程的pid, 接着是毫秒级别的时间,这个是-tt 选项的效果。每一行的最后一列,显示了该调用所花的时间,是-T选项的结果。这里的输出只显示和文件访问有关的内容,这是因为我们通过-e trace=file

##################

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:curl下载安装与使用
下一篇:innodb_data_file_path配置变更引发mysql重启失败
相关文章

 发表评论

暂时没有评论,来抢沙发吧~