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 36 37 38 39 40 41 42 43 44 45
|
global begin_probes
global syscall_probes
global end_probes
probe timer.s(5)
{
exit()
}
# Actual probes
probe process($1).begin
{
begin_probes[pid()]++
}
probe process($1).syscall
{
syscall_probes[pid()]++
}
probe process($1).end
{
end_probes[pid()]++
}
# Testsuite glue
probe begin
{
printf("systemtap starting probe\n");
}
probe end
{
printf("systemtap ending probe\n");
foreach (pid in begin_probes) {
printf("%d: %d begin probes\n", pid, begin_probes[pid])
}
foreach (pid in syscall_probes) {
printf("%d: %d syscall probes\n", pid, syscall_probes[pid])
}
# We really shouldn't see any end_probes fired...
foreach (pid in end_probes) {
printf("%d: %d end probes\n", pid, end_probes[pid])
}
}
|