#! /usr/bin/env stap# Copyright (C) 2006 IBM Corp.## This file is part of systemtap, and is free software. You can# redistribute it and/or modify it under the terms of the GNU General# Public License (GPL); either version 2, or (at your option) any# later version.## Print the system call count by process name in descending order.#global syscallsprobe begin { print ("Collecting data... Type Ctrl-C to exit and display results\n")}probe nd_syscall.* { syscalls[execname()]++}probe end { printf ("%-10s %-s\n", "#SysCalls", "Process Name") foreach (proc in syscalls-) printf("%-10d %-s\n", syscalls[proc], proc)}Example 5.18. topsys.stp Sample Output
Collecting data... Type Ctrl-C to exit and display results#SysCalls Process Name1577 multiload-apple692 synergyc408 pcscd376 mixer_applet2299 gnome-terminal293 Xorg206 scim-panel-gtk95 gnome-power-man90 artsd85 dhcdbd84 scim-bridge78 gnome-screensav66 scim-launcher[...]
#! /usr/bin/env stap# Copyright (C) 2006 IBM Corp.## This file is part of systemtap, and is free software. You can# redistribute it and/or modify it under the terms of the GNU General# Public License (GPL); either version 2, or (at your option) any# later version.## Print the system call count by process ID in descending order.#global syscallsprobe begin { print ("Collecting data... Type Ctrl-C to exit and display results\n")}probe nd_syscall.* { syscalls[pid()]++}probe end { printf ("%-10s %-s\n", "#SysCalls", "PID") foreach (pid in syscalls-) printf("%-10d %-d\n", syscalls[pid], pid)}timer.s() probe; for example, to instruct the script to expire after 5 seconds, add the following probe to the script:probe timer.s(5){ exit()}