【问题标题】:How to get a list of last N system calls on Mac OS X?如何获取 Mac OS X 上最后 N 个系统调用的列表?
【发布时间】:2016-02-23 23:24:08
【问题描述】:

我需要一种方法来从内核中获取最后发生的几个系统调用。 内核会保留这样的日志吗?

这应该是可能的,但它可能比值得更复杂。

欢迎任何想法。编程语言并不重要。任何 Unix 的想法也应该这样做,因为它可能会应用于 Mac OS X。

编辑:

几分钟前,我发现了 dtruss 内置的 shell 脚本,它实际上可以满足我的需要,但我想直接从 Python 或其他可以从 Python 调用的编程语言中执行此操作。

我认为管道到 dtruss 的效率不够高。有谁知道 dtruss 的源代码是否存在于某处?或者至少是 strace,如果我没记错的话,它在 Linux 上也是如此吗?

【问题讨论】:

    标签: macos system-calls


    【解决方案1】:

    dtruss 是 dtrace 的一部分,可从 Apple open source 获得。高温

    【讨论】:

    • 是的,我发现了这一点,并且 dtrace 也是开源的。还是点个赞吧。我要进一步挖掘。让我们看看是否有人在我之前提出了解决方案,并且可以选择更好的解决方案。 :D
    【解决方案2】:

    您可以使用history 命令获取上次终端重启时输入的所有命令。

    您可以将它与history | grep ssh 一起使用,以获取使用ssh 输入的所有命令

    【讨论】:

    • history 命令仅返回 shell 历史记录,而不是从其他应用程序对 OS 内核的系统调用。但我发现 dtruss 命令可以做到这一点,我现在将编辑我的 Q。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多