Chapter 2. strace and System Call Tracing Explained
Effects and Issues of Using strace
2.1. Introduction
In a perfect world, an error message reported by a tool or application would contain all of the information required to diagnose the problem. Unfortunately, the world is far from being a perfect place. Many, if not most, error messages are unclear, ambiguous, or only describe what happened and not why (for example, “could not open file”). Errors are often related to how a tool or application interacted with the underlying operating system. A trace of those interactions can provide a behind-the-scenes look at many types of errors. On Linux the strace utility can be used to trace the thin layer between the kernel and a tool or application. The strace tool can help to investigate an unclear error message or unexpected behavior when it relates to the operating system.
在完美的世界中, 由工具或应用程序报告的错误消息将包含诊断问题所需的所有信息。不幸的是, 世界远不是一个完美的地方。许多 (如果不是大多数) 错误消息是不清楚的、模棱两可的, 或者只描述发生了什么, 而不是为什么 (例如, "无法打开文件")。错误通常与工具或应用程序如何与底层操作系统交互相关。这些交互的一个跟踪可以提供对许多类型的错误的幕后观察。在 Linux 上, strace 实用程序可用于跟踪内核与工具或应用程序之间的接口。strace 工具可以帮助调查含糊的错误消息或与操作系统相关的意外行为。