从 systemtap 中的 nd_syscall.vfork.return 获取新的 pid



我正在尝试从一个奇怪的make文件中提取东西,我发现systemtap是一个潜在的好解决方案,所以我在这里:

使用 nd_syscall.clone.return 进行探测时,我可以从新进程中调用正确的pid() ppid(),但这不包括我在目标脚本中找到的所有 vfork。

因此,当我使用探测nd_syscall.vfork.return时,我发现该消息仅具有克隆调用者的pid()ppid(),我试图获取vfork的返回值,但它似乎不是新的pid(我从许多相关的execve事件中看到

)。

我无法使用kprocess,因为我不想安装调试信息。

有什么方法可以从 vfork 获得正确的new_pid?我错过了一些参数吗?还是我使用了错误的探测功能?一定有办法,谢谢!

附言我已经尝试过 sysdig,但它跳过了很多事件。

您是否尝试过内核跟踪点探测?

probe kernel.trace("sched_process_fork") {
   printf("%d->%dn", $parent->pid, $child->pid)
}

相关内容

  • 没有找到相关文章