STAPREF(1) General Commands Manual STAPREF(1) NAME stapref - systemtap language reference SYNOPSIS stapref DESCRIPTION The reference for the systemtap scripting language. LANGUAGE Keywords o break o continue o delete o else o exit o foreach o for o function o global o private o if o in o next o probe o return o try/catch o while Data Types and Operators Integers o var1 = 5 o global var2 = 10 Strings o var1 = "string1" o global var2 = "string2" Associative Arrays o global array1[] o global array2[SIZE] o array[index] = 5 Context Variables o $var o $var$ (pretty printed string form) Binary numeric operators o * / % + - << >> >>> & ^ | && || Binary string operators o . (string concatenation) Numeric assignment operators o = += -= *= /= %= >>= <<= &= ^= |= String assignment operators o = .= Unary numeric operators o + - ! ~ ++ -- Numeric & string comparison operators o < > <= >= == != Regular expression matching operators o =~ !~ Ternary operator o cond ? exp1 : exp2 Grouping operator o ( expression ) Array operators o array[index] (array read/write) o [index] in array Aggregation operator o var <<< value Statements Jump Statements o continue o break o next (early return from a probe) o return expression (from a function) o try statement catch (message) statement Selection Statements o if (expression) statement o else statement Iteration Statements o foreach (variable in array) statement o foreach ([var1,var2,...] in array) statement o for (expression; expression; expression) statement o while (expression) statement Declaration Statements o function name (variable : type, ...) { statement } o function name : type (variable : type, ...) { statement } o function name : type (variable : type, ...) %{ c_statement %} o probe probepoint { statement } o probe label = probepoint { statement } Lexical Structure Comments o # ... comment o // ... comment o /* ... comment ... */ Preprocessor o %( expression %? true_tokens %: false_tokens %) o @define label (variable, ...) %{ statement %} Builtin Functions Aggregation Builtin Functions o @avg (variable) o @count (variable) o @hist_linear (variable, N, N, N) o @hist_log (variable) o @max (variable) o @min (variable) o @sum (variable) Output Builtin Functions o print (variable) o printf (format:string, variable, ...) where format is of the form: %[flags][width][.precision][length]specifier o printd (delimiter:string, variable, ...) o printdln (delimiter:string, variable, ...) o println () o sprint:string (variable) o sprintf:string (format:string, variable, ...) Variable Access Builtin Functions o @var ("varname[@src/FILE.c]"[, "module"]) (static or global) o @cast (variable, "type_name"[, "module"]) o @defined (variable) o @probewrite (variable) Probepoints Some of the more commonly used probepoints o kernel.function(PATTERN) kernel.function(PATTERN).call o kernel.function(PATTERN).return o kernel.FUNCTION (PATTERN).return.maxactive(VALUE) o kernel.FUNCTION (PATTERN).inline o kernel.FUNCTION (PATTERN).label(LPATTERN) o module(MPATTERN).FUNCTION (PATTERN) o module(MPATTERN).FUNCTION (PATTERN).call o module(MPATTERN).FUNCTION (PATTERN).return.maxactive(VALUE) o module(MPATTERN).FUNCTION (PATTERN).inline o kernel.statement(PATTERN) o kernel.statement(ADDRESS).absolute o module(MPATTERN).statement(PATTERN) o kprobe.FUNCTION (FUNCTION) o kprobe.FUNCTION (FUNCTION).return o kprobe.module(NAME).FUNCTION (FUNCTION) o kprobe.module(NAME).FUNCTION (FUNCTION).return o kprobe.statement(ADDRESS).absolute o process.begin process("PATH").begin o process(PID).begin process.thread.begin o process("PATH").thread.begin o process(PID).thread.begin o process.end o process("PATH").end o process(PID).end o process.thread.end o process("PATH").thread.end o process(PID).thread.end o process("PATH").syscall o process(PID).syscall o process.syscall.return o process("PATH").syscall.return o process(PID).syscall.return o process("PATH").FUNCTION ("NAME") o process("PATH").statement("*@FILE.c:123") o process("PATH").FUNCTION ("*").return o process("PATH").FUNCTION ("myfun").label("foo") o process("PATH").mark("LABEL") o java("PNAME").class("CLASSNAME").method("PATTERN") o java("PNAME").class("CLASSNAME").method("PATTERN").return o java(PID).class("CLASSNAME").method("PATTERN") o java(PID).class("CLASSNAME").method("PATTERN").return o python2.module("MODULENAME").function("PATTERN") o python2.module("MODULENAME").function("PATTERN").return o python3.module("MODULENAME").function("PATTERN") o python3.module("MODULENAME").function("PATTERN").return Tapset Functions Some of the more commonly used tapset functions o addr:long () o backtrace:string () o caller:string () o caller_addr:long () o cmdline_arg:string (N:long) o cmdline_args:string (N:long,m:long,delim:string) o cmdline_str:string () o env_var:string (name:string) o execname:string () o int_arg:long (N:long) o isinstr:long(s1:string,s2:string) o long_arg:long (N:long) o modname:string () o module_name:string () o pid:long () o pn:string () o pointer_arg:string (N:long) o pp:string () o print_backtrace () o probefunc:string () o register:long(name:string) o str_replace:string(prnt_str:string,srch_str:string,rplc_str:string) o stringat:long(str:string,pos:long) o strlen:long(str:string) o strtol:long(str:string,base:long) o substr:string(str:string,start:long,length:long) o user_long:long(addr:long) o user_string:string(addr:long) SEE ALSO stap(1) BUGS Use the Bugzilla link of the project web page or our mailing list. http://sourceware.org/systemtap/,. STAPREF(1)