hopeless-dream

导航

strace命令基本用法

简介

 strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等

strace的两种运行模式

1、直接追踪某些命令的执行

语法

strace <待追踪的命令>

例如

[root@iZzm446eh1ux98Z ~]# strace ls /

2、追踪某个守护进程

语法

strace -p pid

 

 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选项即可。

strace的-e trace选项

要跟踪某个具体的系统调用,-e trace=xxx即可。但有时候我们要跟踪一类系统调用,比如所有和文件名有关的调用、所有和内存分配有关的调用。strace提供了几类常用的系统调用组合名字。

-e trace=file     跟踪和文件访问相关的调用(参数中有文件名)
-e trace=process  和进程管理相关的调用,比如fork/exec/exit_group
-e trace=network  和网络通信相关的调用,比如socket/sendto/connect
-e trace=signal    信号发送和处理相关,比如kill/sigaction
-e trace=desc  和文件描述符相关,比如write/read/select/epoll等
-e trace=ipc 进程见同学相关,比如shmget等

 

关于经典网络网卡启动的问题在日记里

posted on 2020-07-12 15:03  hopeless-dream  阅读(1532)  评论(0编辑  收藏  举报