【问题标题】:unix system call monitorUnix系统调用监视器
【发布时间】:2010-11-03 21:04:29
【问题描述】:

如何监控进程的系统调用?

【问题讨论】:

  • 糟糕,我无意中选择了“属于 uservoice.com” - 意在选择 serverfault.com
  • 我一直在监控系统调用,同时诊断程序中的问题。我认为没有理由将此问题归咎于服务器故障。这是一个关于调试技术的问题。

标签: unix debugging monitoring system-calls


【解决方案1】:

查看strace

在最简单的情况下,strace 会运行指定的命令直到它退出。它拦截并记录进程调用的系统调用和进程接收到的信号。每个系统调用的名称、它的参数和它的返回值都打印在标准错误或使用 -o 选项指定的文件中。

跟踪中的每一行都包含系统调用名称,后面是括号中的参数及其返回值。

【讨论】:

  • 不知何故我记得strace 相对偏向 Linux,尽管它现在似乎可以在其他平台上运行。 SunOS 有一个类似的(和更早的)truss 实用程序,由 Solaris 继承;我相信 truss 也可以在 BSD 上运行,它们有自己的 ktrace 实用程序。我从未使用过它们,但我听说 Irix 和 Tru64 分别有 partrace,它们都具有相同的用途。
  • 在大多数情况下,这些程序都做同样的事情。它们具有不同的输出格式,但信息大多相同。在 HP-UX 上,该命令称为 tusc。
  • 一位伟大的导师曾经告诉我“桁架是你的朋友”。尽管我已经很长时间没有使用 UNIX,但我现在更好地理解了他为什么强调该工具。对正在运行的流程的可见性在 IT 中绝对是关键。能做到这一点的人有很大的优势,或者说我在我的职业中学到了。
猜你喜欢
  • 1970-01-01
  • 2013-11-24
  • 1970-01-01
  • 2011-06-13
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 2015-09-24
  • 1970-01-01
相关资源
最近更新 更多