2017年如何高效利用strace神器进行科学调试?(附代码示例)

2026-05-29 09:443阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3995个文字,预计阅读时间需要16分钟。

2017年如何高效利用strace神器进行科学调试?(附代码示例)

我意识到惊讶,都2017年了,几乎没人知道他们可以使用strace来了解所有事情。它始终是我拔出的第一个调试工具之一,因为它经常在我运行的Linux系统上可用,并且可以用来解决各种问题。

  我感到惊讶,都2017年了,几乎没有人知道他们可以使用strace的了解所有事情。它总是我拔出的第一个调试工具之一,因为它通常在我运行的Linux系统上可用,并且它可以用于解决各种各样的问题。

什么是strace?

Strace是一个简单的跟踪系统调用执行的工具。在其最简单的形式中,它可以从开始到结束跟踪二进制的执行,并在进程的生命周期中输出一行具有系统调用名称,每个系统调用的参数和返回值的文本行。但它可以做很多:

  • 它可以基于特定的系统调用或系统调用组进行过滤
  • 它可以通过统计特定系统调用的使用次数,所花费的时间,以及成功和错误的数量来分析系统调用的使用。
  • 它跟踪发送到进程的信号。
  • 它可以通过pid附加到任何正在运行的进程。

如果您使用过其他Unix系统,这与“truss”类似。另一个(更全面)是Sun的Dtrace。

阅读全文

本文共计3995个文字,预计阅读时间需要16分钟。

2017年如何高效利用strace神器进行科学调试?(附代码示例)

我意识到惊讶,都2017年了,几乎没人知道他们可以使用strace来了解所有事情。它始终是我拔出的第一个调试工具之一,因为它经常在我运行的Linux系统上可用,并且可以用来解决各种问题。

  我感到惊讶,都2017年了,几乎没有人知道他们可以使用strace的了解所有事情。它总是我拔出的第一个调试工具之一,因为它通常在我运行的Linux系统上可用,并且它可以用于解决各种各样的问题。

什么是strace?

Strace是一个简单的跟踪系统调用执行的工具。在其最简单的形式中,它可以从开始到结束跟踪二进制的执行,并在进程的生命周期中输出一行具有系统调用名称,每个系统调用的参数和返回值的文本行。但它可以做很多:

  • 它可以基于特定的系统调用或系统调用组进行过滤
  • 它可以通过统计特定系统调用的使用次数,所花费的时间,以及成功和错误的数量来分析系统调用的使用。
  • 它跟踪发送到进程的信号。
  • 它可以通过pid附加到任何正在运行的进程。

如果您使用过其他Unix系统,这与“truss”类似。另一个(更全面)是Sun的Dtrace。

阅读全文