strace实时查看进程日志输出

在启动进程的时候忘记重定向log到输出文件,或者terminal意外退出但是程序还在继续执行,但我想看看程序执行的具体情况,看看程序输出的log,这时候strace命令就派上用场了

strace命令

安装方式:apt-get install strace

strace 来变通的看一下日志,strace是一个用来跟踪进程执行时的系统调用和所接收的信号的程序会将程序的系统调用情况打印出来。而我们的日志输出,比如printf到了系统调用这一层,使用的是write,于是我们可以利用这一点动态的查看printf的输出。

比如如下命令来查看进程pid为1648的printf输出 

strace  -e trace=write -s 200 -f -p 16482 或者 strace  -ewrite -s 200 -f -p 16482

 -e trace=write  的意思是设置一个表达式,用来控制如何跟踪,这里表示只跟踪write的系统调用情况

-s 200 的意思是字符串输出显示时的最大长度,默认是32个字节,对于printf的打印可能不够,这里我们设置为200

-f  的意思是需要跟踪子进程forks,这里对线程同样适用,不加这个参数只能输出main所在的线程的信息。

-p 1648 指定要跟踪的进程号为1648

 

如需要保存到文件则使用-o 参数

strace -o out.strace -e trace=write -s 200 -f -p 16482 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值