【发布时间】:2012-02-27 07:25:00
【问题描述】:
如果子进程执行读取和写入之外的其他系统调用(甚至过滤这些调用,但这是另一回事),我想杀死一个子进程,但默认情况下会执行一些系统调用。
我已经编译了一个空的测试子程序(立即退出),并且我还有一个父进程,它分叉、启用 ptracing 并执行子程序。父进程使用 PTRACE_SYSCALL 并且每次都检查 orig_eax。我的测试程序报告说孩子被停止了 49 次(我假设这意味着 48 / 2 + 1 次系统调用)。
我想知道系统调用序列是否始终相同(初始化)和/或是否有可能知道我何时可以开始以及何时停止在我的父级中的 kill-on-syscall?
【问题讨论】:
-
我无法清楚地理解您所说的相同序列是什么意思?这取决于子进程。顺便问一下你有没有查看strace你可以看到strace调用了所有系统调用[你的子进程]希望我能对你有所帮助
标签: c++ linux system-calls ptrace