【问题标题】:Ptracing Process Trees跟踪进程树
【发布时间】:2025-12-12 02:40:01
【问题描述】:

我正在寻找有关如何使用 Linux 系统调用ptrace() 来跟踪进程其所有子、孙等进程的系统调用的代码示例。类似于 strace 的行为,当它被提供 fork 标志 -f 时。

我知道寻找 strace 来源的替代方法,但我首先要求一个干净的教程,希望得到一个更孤立的解释。

我将使用它来实现一个快速的通用系统调用记忆器,类似于https://github.com/nordlow/strace-memoize,但用编译语言编写。我想用这个逻辑扩展的当前代码示例是我在 https://github.com/nordlow/ministrace/blob/master/ministrace.c 的 ministrace 的分支

【问题讨论】:

    标签: linux process pid strace ptrace


    【解决方案1】:

    RTFM PTRACE_SETOPTIONS 带有 PTRACE_O_TRACECLONEPTRACE_O_TRACEFORKPTRACE_O_TRACEVFORK 标志。简而言之,如果您将其设置在进程上,则任何时候它创建子进程时,也会自动跟踪这些子进程。

    【讨论】: