L62.linux命令每日一练 -- 第九章 Linux进程管理命令 -- strace和ltrace

9.11 strace:跟踪进程的系统调用

9.11.1 命令详解

【命令星级】 ★★★★★

【功能说明】

​ strace是Linux环境下的一款程序调试工具,用于检查一个应用程序所使用的系统调用以及它所接收的系统信息。strace会追踪程序运行时的整个生命周期,输出每一个系统调用的名字、参数、返回值和执行所消耗的时间等,是高级运维和开发人员排查问题的杀手锏。

【语法格式】

strace [option]
strace [选项]

​ **说明:**在strace命令及后面的选项里,每个元素之间都至少要有一个空格。

​ 【选项说明】

​ 表9-12针对该命令的参数选项进行了说明。

​ 表9-12 strace命令的参数选项及说明
在这里插入图片描述
在这里插入图片描述

9.11.2 使用范例

​ **范例9-34:**排查nginx 403forbidden错误。
在这里插入图片描述
在这里插入图片描述
​ **范例9-35:**只跟踪与文件操作有关的系统调用。

​ 范例9-34命令结果的输出实在太多了,很容易看花眼,因此可以使用过滤器,过滤掉无关的信息,比如只查看文件操作系统信息。

在这里插入图片描述
在这里插入图片描述
**范例9-36:**通过pid跟踪进程。
在这里插入图片描述
​ **范例9-37:**跟踪系统调用统计。

​ strace不仅能够追踪系统调用,使用选项-c还能对进程所有的系统调用做一个统计分析。

在这里插入图片描述
在这里插入图片描述
​ 上面的结果将清楚地告诉我们调用了哪些系统函数,调用的次数是多少,消耗了多少时间等信息,这对我们分析程序来说是非常有用的。

​ **范例9-38:**重定向输出。
在这里插入图片描述
在这里插入图片描述
​ **范例9-39:**对系统调用进行计时。

在这里插入图片描述
​ 小结:strace命令很适合处理程序僵尸、命令执行报错等问题,如果从程序日志和系统日志中看不出问题出现的原因,则可以strace一下,也许会有答案,不过也需要使用者有足够的耐心去查看输出!

9.12 ltrace:跟踪进程调用库函数

9.12.1 命令详解

【命令星级】 ★★★★★

【功能说明】

​ ltrace能够跟踪进程的库函数调用,它会显现出调用了哪个库函数,而strace则是跟踪进程的每个系统调用。

【语法格式】

ltrace [option]
ltrace [选项]

​ **说明:**在slrace命令及后面的选项里,每个元素之间都至少要有一个空格。

​ 【选项说明】

​ 表9-13针对该命令的参数选项进行了说明。

​ 表9-13 ltrace命令的参数选项及说明
在这里插入图片描述

9.12.2 使用范例

​ **范例9-40:**ltrace使用。

​ ltrace的用法与strace非常相似,选项功能也是类似,下面简单看一下ltrace命令的执行结果。
在这里插入图片描述
在这里插入图片描述
​ **范例9-41:**通过pid跟踪进程调用函数库。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_25599925/article/details/126202583
今日推荐