strace实时查看进程日志输出

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:31   2336   0

在启动进程的时候忘记重定向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

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP