blob: 9a4beced832db43b658ffb077782e3d419a997eb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
global _target_set # map: target-set-pid -> ancestor-pid
function target_set_pid (pid)
{
return ([pid] in _target_set)
}
probe begin
{
if (target())
_target_set[target()] = stp_pid()
}
probe nd_syscall.fork.return
{
pid = returnval()
if (pid in _target_set)
next
ppid = pid()
if (ppid in _target_set)
_target_set[pid] = ppid
}
probe nd_syscall.exit
{
delete _target_set[pid()]
}
function target_set_report ()
{
printf("target set:\n")
foreach (pid in _target_set+)
printf("%d begat %d\n", _target_set[pid], pid)
}
|