11 Strace 命令与 Linux 中的示例

[ad_1]

Strace 是一个非常强大的调试命令行实用工具,它通过监视特定程序的系统调用和信号来帮助解决问题。 如果我们没有可用的源代码,可以使用 strace 来分析程序如何与系统交互。 在本文中,我们将讨论一些用于对 Linux 中的程序和进程进行故障排除和调试的重要 strace 命令。

安装

strace 实用工具的安装是一个简单易行的过程。 使用以下命令根据您的 Linux 发行版安装应用程序。

Debian/Ubuntu

$ sudo apt install strace

红帽/CentOS

$ yum install strace

通过运行以下命令验证安装

$ strace -V

输出:

1.使用strace跟踪Linux命令系统调用

Strace 在跟踪 Linux 命令系统调用时很有帮助。 在这个例子中,一个简单的命令 密码 用于跟踪。

$ strace pwd

输出:

2. 将跟踪日志重定向到文件中

系统调用跟踪日志可以使用 strace 命令重定向到一个文件,如下所示:

$ strace -o pwd-log.txt 密码

使用 cat 命令查找文件内容为:

$ cat pwd-log.txt

3. 使用strace 打印系统调用摘要而不是常规输出。

使用带有选项 -c 的 strace 可以打印日志摘要。 在此示例中,提供了 linux 命令 pwd 的摘要。

$ strace -c pwd

输出:

4. 使用 strace 跟踪特定的系统调用

带有选项 -e 和跟踪类型(读、写)的 Strace 命令可用于跟踪特定的系统调用。 在此示例中,正在跟踪命令 pwd 的 write 系统调用。

$ strace -e trace=write pwd

输出:

5. strace 命令打印每个系统调用的时间戳。

带有 -r 选项的 Strace 命令可用于打印每个系统调用的所有相关时间戳。

$ strace -r pwd

输出:

6.使用进程ID进行跟踪

如果系统中已经有任何进程在运行,则可以使用带有选项 -p 的 strace 命令以及进程 ID 来跟踪系统调用。 本例中使用nginx的进程id进行跟踪

句法

$ strace -p <process id>
$ strace -p 12842

按 ctrl+c 可以停止跟踪。

7.strace命令打印调试输出

带有选项 -d 的 Strace 命令可用于打印调试输出。 在这个例子中,一个简单的 Linux 命令 pwd 用于跟踪。

$ strace -d pwd

输出:

8. Strace 命令打印系统调用所花费的时间。

带有选项 -T 的 Strace 命令给出了花费在系统调用上的时间:

$ strace -T pwd

输出:

9、strace命令打印指令指针

带有 -i 选项的 Strace 命令打印指令指针。 在这个例子中,一个简单的 Linux 命令 pwd 用于跟踪。

$ strace -i pwd

输出:

10.根据特定条件跟踪系统调用的strace命令

strace 命令可用于根据内存、进程、CPU 等特定条件来跟踪系统调用。在本示例中,针对一个简单的 Linux 命令 pwd 跟踪与内存管理相关的系统调用。

$ strace -q -e 内存密码

输出:

11. 跟踪信号相关系统调用的strace命令

可以通过在命令中定义跟踪类型来跟踪与信号相关的系统调用。 在这个例子中 nc -v -n 本地主机 80 用于跟踪与信号相关的系统调用。

$ strace -e trace=signal nc -v -n 127.0.0.1 80

输出:

结论

在本文中,我们了解了什么是 strace 实用工具以及何时可以使用它。 此外,我还介绍了一些用于对系统调用和进程进行故障排除和调试的重要 strace 命令。

[ad_2]

Related Posts