Man page - stapref(1)
Packages contains this manual
Available languages:
en csManual
STAPREF
JMÉNOPOUŽiTÍ
POPIS
JAZYK
VIZ TÉŽ
CHYBY
JMÉNO
stapref - referenční příručka pro skriptovací jazyk systemtapu
POUŽiTÍ
stapref
POPIS
Referenční příručka pro skriptovací jazyk systemtapu.
JAZYK
Klíčová slova
•
break
•
continue
•
delete
•
else
•
exit
•
foreach
•
for
•
function
•
global
•
private
•
if
•
in
•
next
•
probe
•
return
•
try/catch
•
while
Datové typy a operátory
Celá čísla
• var1 = 5
•
global
var2 = 10
Řetězce
• var1 = "string1"
•
global
var2 = "string2"
Asociativní
pole
•
global
array1[]
•
global
array2[SIZE]
• array[index] = 5
Kontextové
proměnné
•
$
var
•
$
var
$
("pěkný
výpis" řetězce)
Binární
číselné operátory
•
* / % + - << >> & ˆ |
&& ||
Binární
řetězcové operátory
•
.
(spojení řetězců)
Operátory
pro číselné přiřazení
•
= += -= *= /= %= >>= <<= &=
ˆ= |=
Přiřazovací
operátory pro řetězce
•
= .=
Unární
číselné operátory
•
+ - ! ˜ ++ --
Operátory
pro porovnávání čísel a
řetězců
•
< > <= >= == !=
Operátory
pro srovnání proti regulárnímu
výrazu
•
=˜ !˜
Ternární
operátor
• cond
?
exp1
:
exp2
Seskupovací
operátor
•
(
expression
)
Operátory
nad poli
• array
[
index
]
(array read/write)
• [index]
in
array
Agregační
operátor.
• var
<<<
value
Příkazy
Skok
•
continue
•
break
•
next
•
return
expression
•
try
přikaz
catch
(zpráva)
Příkazy
větvení
•
if
(výraz) příkaz
•
else
příkaz
Příkazy
pro iterování
•
foreach
(proměnná
in
pole)
příkaz
•
foreach
([var1,var2,...]
in
pole)
příkaz
•
for
(výraz; výraz; výraz)
příkaz
•
while
(výraz) příkaz
Deklarace
•
function
jméno (proměnná :
type, ...) { příkaz }
•
function
jméno : type
(proměnná : type, ...) { příkaz }
•
function
jméno : type
(proměnná : type, ...) %{ c_příkaz
%}
•
probe
sondážní_bod {
příkaz }
•
probe
label = sondážní_bod
{ příkaz }
Lexikální struktury
Komentáře
•
#
... komentář
•
//
... komentář
•
/*
... komentář ...
*/
Značky pro
preprocesor
•
%(
výraz
%?
true_tokens
%:
false_tokens
%)
•
@define
značka (proměnná,
...) %{ příkaz %}
Vestavěné funkce
Vestavěné
agregační funkce
•
@avg
(proměnná)
•
@count
(proměnná)
•
@hist_linear
(proměnná, N, N, N)
•
@hist_log
(proměnná)
•
@max
(proměnná)
•
@min
(proměnná)
•
@sum
(proměnná)
Vestavěné
funkce pro výstup
•
print
(proměnná)
•
printf
(formát:řetězec,
proměnná, ...)
kde formát má tvar:
%[flags][šířka][.přesnost][délka]specifiáktor
•
printd
(oddělovač:řetězec,
proměnná, ...)
•
printdln
(oddělovač:řetězec,
proměnná, ...)
•
println
()
•
sprint
:řetězec
(proměnná)
•
sprintf
:řetězec
(formát:řetězec, proměnná,
...)
Vestavěné
funkce pro přístup k proměnným
•
@cast
(variable, "type_name"[,
"module"])
•
@defined
(variable)
Sondážní body
Některé
běžné sondážní body
• kernel.function(PATTERN)
kernel.function(PATTERN).call
• kernel.function(PATTERN).return
• kernel.FUNCTION (PATTERN).return.maxactive(VALUE)
• kernel.FUNCTION (PATTERN).inline
• kernel.FUNCTION (PATTERN).label(LPATTERN)
• module(MPATTERN).FUNCTION (PATTERN)
• module(MPATTERN).FUNCTION (PATTERN).call
• module(MPATTERN).FUNCTION
(PATTERN).return.maxactive(VALUE)
• module(MPATTERN).FUNCTION (PATTERN).inline
• kernel.statement(PATTERN)
• kernel.statement(ADDRESS).absolute
• module(MPATTERN).statement(PATTERN)
• kprobe.FUNCTION (FUNCTION)
• kprobe.FUNCTION (FUNCTION).return
• kprobe.module(NAME).FUNCTION (FUNCTION)
• kprobe.module(NAME).FUNCTION (FUNCTION).return
• kprobe.statement(ADDRESS).absolute
• process.begin process("PATH").begin
• process(PID).begin process.thread.begin
• process("PATH").thread.begin
• process(PID).thread.begin
• process.end
• process("PATH").end
• process(PID).end
• process.thread.end
• process("PATH").thread.end
• process(PID).thread.end
• process("PATH").syscall
• process(PID).syscall
• process.syscall.return
• process("PATH").syscall.return
• process(PID).syscall.return
• process("PATH").FUNCTION ("NAME")
•
process("PATH").statement("*@FILE.c:123")
• process("PATH").FUNCTION
("*").return
• process("PATH").FUNCTION
("myfun").label("foo")
• process("PATH").mark("LABEL")
•
java("PNAME").class("CLASSNAME").method("PATTERN")
•
java("PNAME").class("CLASSNAME").method("PATTERN").return
•
java(PID).class("CLASSNAME").method("PATTERN")
•
java(PID).class("CLASSNAME").method("PATTERN").return
•
python2.module("MODULENAME").function("PATTERN")
•
python2.module("MODULENAME").function("PATTERN").return
•
python3.module("MODULENAME").function("PATTERN")
•
python3.module("MODULENAME").function("PATTERN").return
Funkce standardního tapsetu
Některé
běžnější funkce
standardního tapsetu
• addr:long ()
• backtrace:string ()
• caller:string ()
• caller_addr:long ()
• cmdline_arg:string (N:long)
• cmdline_args:string (N:long,m:long,delim:string)
• cmdline_str:string ()
• env_var:string (name:string)
• execname:string ()
• int_arg:long (N:long)
• isinstr:long(s1:string,s2:string)
• long_arg:long (N:long)
• modname:string ()
• module_name:string ()
• pid:long ()
• pn:string ()
• pointer_arg:string (N:long)
• pp:string ()
• print_backtrace ()
• probefunc:string ()
• register:long(name:string)
•
str_replace:string(prnt_str:string,srch_str:string,rplc_str:string)
• stringat:long(str:string,pos:long)
• strlen:long(str:string)
• strtol:long(str:string,base:long)
• substr:string(str:string,start:long,length:long)
• user_long:long(addr:long)
• user_string:string(addr:long)
VIZ TÉŽ
stap (1)
CHYBY
Použijte projektovou bugzillu, nebo mailing list. http://sourceware.org/systemtap/ , <systemtap@sourceware.org> .
error::reporting (7stap), https://sourceware.org/systemtap/wiki/HowToReportBugs