This page contains simple SystemTap scripts which can help a beginner to get familiar with SystemTap usage and its language constructs

fork.stp

global proc_counter

probe begin {
        print ("Started monitoring creation of new processes....Press ^C to terminate\n")
        printf ("%-25s %-10s %-s\n", "Process Name", "Process ID", "Clone Flags")
}

probe kernel.function("do_fork") {
        proc_counter++
        printf("%-25s %-10d 0x%-x\n", execname(), pid(), $clone_flags)
}

probe end {
        printf ("\n%d processes forked during the observed period\n", proc_counter)
}

fork-nd.stp (dwarfless probing - w/o debuginfo)

global proc_counter

probe begin {
        print ("Started monitoring creation of new processes....Press ^C to terminate\n")
        printf ("%-25s %-10s %-s\n", "Process Name", "Process ID", "Clone Flags")
}

probe kprobe.function("do_fork") {
        proc_counter++
        printf("%-25s %-10d 0x%-x\n", execname(), pid(), ulong_arg(1))
}

probe end {
        printf ("\n%d processes forked during the observed period\n", proc_counter)
}

Probes kprobe.* were introduced in SystemTap 0.9.7 to indicate dwarfless probing. If you have older release, then use probes kernel.*.

None: systemtapstarters (last edited 2009-04-24 17:51:48 by chello089079179132)