Linux strace 命令Linux strace 命令Linux strace 命令Linux strace 命令
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

Linux strace 命令

Linux 提供了丰富的调试工具来对服务和应用程序进行故障排除。 Linux strace 命令是一个对开发人员有益的工具。 strace 命令是一种调试和故障排除工具,可拦截并记录进程发出和接收的系统调用。它提供了从头到尾的复杂的二进制序列。

在本教程中,我们将深入研究 Linux strace 命令并演示一些示例用法。

基本命令语法

strace 命令采用以下语法:

$ strace OPTIONS command

如何安装Linux strace命令

大多数现代 Linux 发行版默认都附带 strace 实用程序。但是,如果您的系统由于某种原因未安装 strace,请按照以下步骤进行安装。

在 Debian/Ubuntu 上

如果您运行的是基于 Debian/Ubuntu 的系统,请执行:

$ sudo apt install strace

在 RHEL/CentOS 上

$ sudo yum install strace

要验证 strace 是否已安装,您可以检查其版本,如下所示。

$ strace --version

现在让我们看一些示例用法。

基本 strace 命令

在其最基本的格式中,strace 命令将跟踪并显示系统调用、参数(用方括号或括号括起来)以及可执行调用。

在下面的示例中,我们可以看到运行脚本 hello.sh, call 的参数被放在第一行的括号中。

$ strace ./hello.sh

在最后一行,您可以看到命令的退出状态,在本例中为 0。这意味着命令已成功执行,没有任何错误。退出代码 -1 表示执行期间遇到错误。

统计系统调用次数

如果您想获取系统调用的数量,请使用 -c 选项进行计数,如下所示。

$ strace -c ./hello.sh

从上面的输出中,您可以看到进行的系统调用的数量,包括进行的调用。

使用 strace 显示特定的系统调用

此外,您可以选择使用 -e 选项查看使用 strace 进行的系统调用的性质,后跟系统调用的性质。在所示的代码片段中,我们显示了写入和读取系统调用。

$ strace -e trace=write ./hello.sh

$ strace -e trace=read ./hello.sh

跟踪网络系统调用

您可以通过指定调用类型来限制 strace 显示网络系统调用。这里。 trace=network表示我们打算获取网络命令ping 8.8.8.8 -c 4的网络调用。

$ strace -e trace=network ping 8.8.8.8 -c 4

跟踪信号系统调用

对于与系统相关的调用,请使用以下命令中所示的参数。该命令打印 ping 8.8.8.8 -c 4 命令的信号调用者。

$ strace -e trace=signal ping 8.8.8.8 -c 4

打印每个系统调用的时间戳

要提取每个系统调用的时间戳,请使用 -r 选项,如以下命令所示。

$ strace -r ping 8.8.8.8 -c 4

正如您所看到的,每个系统调用都会打印一个相对时间戳。捕获并记录连续系统调用之间的时间差。

显示进行系统调用所花费的时间

此外,您可以使用 -T 选项打印每个系统调用所花费的持续时间,如下所示。所花费的时间显示在最后一列中,如图所示。

$ strace -T ping 8.8.8.8 -c 4

显示每个系统调用的准确时间

要打印系统调用的实际或准确时间,请调用 -t 选项,如图所示。实时或挂钟时间打印在第一列中。

$ strace -t ./hello.sh

显示每次调用的指令指针

要打印每个系统调用的指令指针,请使用-i选项。

$ strace -i ./hello.sh

将系统调用的输出保存到文本文件

最后,strace 命令提供了将输出保存到文本文件的选项,如图所示。

$ strace -o sample_output.txt ./hello.sh

这里,sample_output.txt是输出文件,而./hello.sh是我们正在跟踪其系统调用的命令。

包起来

Strace 命令是一个方便且功能强大的命令行实用程序,可帮助调试应用程序、命令和进程,特别是在您没有可用源代码的情况下。它是软件开发人员和系统管理员的首选工具。

©2015-2025 艾丽卡 support@alaica.com