2017-01-10 8 views
2
내가 extract things from a weird makefile에 노력하고있어

에 nd_syscall.vfork.return에서 PID 새로운 가져 오기, 나는 그 SystemTap의가 나는 그래서 여기에 잠재적 좋은 솔루션입니다 발견SystemTap의

내가 올바른 얻을 수 pid()ppid() 새로운에서 호출 프로세스가 nd_syscall.clone.return으로 프로빙 할 때, 그러나 이것은 타겟 스크립트에서 찾은 모든 vfork를 포함하지는 않습니다. 내가 프로브 nd_syscall.vfork.return를 사용할 때

그래서, 나는 메시지가 발신자의 pid() 만, 내가 vfork 상태의 반환 값을 얻기 위해 노력했습니다 ppid()를 복제했지만 그것 (새로운 PID를 될 것 같지 않습니다 것으로 나타났습니다 많은 관련 execve 이벤트에서 본 적이 있습니다.)

디버그 정보를 설치하지 않으므로 kprocess을 사용할 수 없습니다.

vfork에서 올바른 new_pid를 얻으려면 어떻게해야합니까? 나는 몇 가지 주장을 놓쳤는가? 또는 잘못된 프로브 기능을 사용 했습니까? 고마워, 고마워!

P. 나는 sysdig 시도했지만 BTW 많은 이벤트를 건너 뜁니다.

답변

1

커널 트레이스 포인트 프로브를 사용해 보셨습니까?

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