perf-probe - Online în cloud

Aceasta este comanda perf-probe care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


perf-probe - Definiți noi puncte de urmărire dinamice

REZUMAT


perfect sondă [opțiuni] --add=SONDĂ [...]
or
perfect sondă [opțiuni] PROBE
or
perfect sondă [opțiuni] --del=[GRUP:]EVENIMENT [...]
or
perfect sondă --list[=[GROUP:]EVENT]
or
perfect sondă [opțiuni] --line=LINE
or
perfect sondă [opțiuni] --vars=PROBEPOINT
or
perfect sondă [opțiuni] --funcs

DESCRIERE


Această comandă definește evenimente tracepoint dinamice, prin simbol și registre fără informații de depanare,
sau prin expresii C (numere de linii C, nume de funcții C și variabile locale C) cu
debuginfo.

OPŢIUNI


-k, --vmlinux=CALEA
Specificați calea vmlinux care are debuginfo (binar pitic).

-m, --module=MODNAME|CALEA
Specificați numele modulului în care perf-probe caută punctele sau liniile probei. Dacă o cale de
Fișierul modulelor este trecut, perf-probe îl tratează ca pe un modul offline (aceasta înseamnă că puteți
adăugați o sondă pe un modul care nu a fost încă încărcat).

-s, --source=CALEA
Specificați calea către sursa kernelului.

-v, --verbos
Fii mai verbos (afișează argumentele analizate etc.). Nu se poate folosi cu -q.

-q, --liniște
Taci (nu afișa niciun mesaj, inclusiv erori). Nu se poate folosi cu -v.

-a, --add=
Definiți un eveniment de sondă (a se vedea SINTAXA PROBE pentru detalii).

-d, --del=
Ștergeți evenimentele de sondă. Aceasta acceptă metacaracterele glob(*, ?) și clase de caractere (de ex
[az], [!AZ]).

-l, --list[=[GROUP:]EVENT]
Enumerați evenimentele de sondă curente. Aceasta poate accepta, de asemenea, modele de filtrare ale numelor de evenimente.

-L, --line=
Afișați linii de cod sursă care pot fi testate. Acest lucru necesită un argument care specifică a
intervalul codului sursă. (vezi SINTAXA LINII pentru detalii)

-V, --vars=
Afișați variabilele locale disponibile la un punct dat de sondă. Sintaxa argumentului este aceeași ca
SINTAXA PROBE, dar NU ARG-uri.

--externii
(Numai pentru --vars) Afișează variabilele externe definite în plus față de variabilele locale.

--fără linii
(Numai pentru --add) Căutați numai funcții non-inlined. Funcțiile care nu
au cazurile sunt ignorate.

-F, --funcs[=FILTER]
Afișați funcțiile disponibile în modulul sau nucleul dat. Cu -x/--exec, poate, de asemenea, lista
funcții într-o bibliotecă executabilă / partajată în spațiul utilizatorului. Acest lucru poate accepta și un FILTRU
argumentul regulii.

--filter=FILTER
(Numai pentru --vars și --funcs) Setați filtrul. FILTER este o combinație de model glob, vezi
MODEL DE FILTRE pentru detalii. FILTRUL implicit este „!k???tab_* & !crc_*" pentru --vars și
„!_*” pentru --funcs. Dacă sunt specificate mai multe filtre, se utilizează numai ultimul filtru.

-f, --forță
Adăugați forțat evenimente cu un nume existent.

-n, --funcționare în uscat
Cursa uscata. Cu această opțiune, --add și --del nu execută adăugarea și eliminarea efectivă
operațiuni.

--max-probes=NUM
Setați numărul maxim de puncte de sondă pentru un eveniment. Implicit este 128.

-x, --exec=CALEA
Specificați calea către fișierul de bibliotecă executabil sau partajat pentru urmărirea spațiului utilizatorului. Poate, de asemenea
poate fi folosit cu opțiunea --funcs.

--descurca
Demangle simbolurile aplicației. --no-demangle este disponibil și pentru dezactivare
dezmembrarea.

--demangle-kernel
Demangle simbolurile nucleului. --no-demangle-kernel este disponibil și pentru dezactivarea nucleului
dezmembrarea.

În absența opțiunilor -m/-x, sonda perf verifică dacă primul argument după opțiuni este
un nume de cale absolut. Dacă este o cale absolută, sonda perf o folosește ca țintă
modul/țintă spațiu utilizator binar pentru a sonda.

SONDĂ SINTAXĂ


Punctele de sondare sunt definite prin următoarea sintaxă.

1) Definiți evenimentul pe baza numelui funcției
[EVENT=]FUNC[@SRC][:RLN|+OFFS|%return|;PTN] [ARG ...]

2) Definiți evenimentul pe baza fișierului sursă cu numărul liniei
[EVENT=]SRC:ALN [ARG ...]

3) Definiți evenimentul pe baza fișierului sursă cu model leneș
[EVENT=]SRC;PTN [ARG ...]

EVENIMENT specifică numele noului eveniment, dacă este omis, va fi setat numele sondei
funcţie. În prezent, numele grupului de evenimente este setat ca sondă. ANGAJAT specifică o funcție sondată
nume și poate avea una dintre următoarele opțiuni; +OFF-uri este decalajul față de funcție
adresa de intrare în octeți, :RLN este numărul de linie relativă din linia de intrare a funcției și
%întoarcere înseamnă că sondează revenirea funcției. Și ;PTN înseamnă model de potrivire leneș (vezi
POTRIVIRE LENESĂ). Rețineți că ;PTN trebuie să fie sfârșitul definiției punctului sondei. În plus,
@SRC specifică un fișier sursă care are această funcție. De asemenea, este posibil să specificați a
punct de sondare după numărul liniei sursă sau potrivire leneșă prin utilizarea SRC:ALN or SRC;PTN sintaxă,
Unde SRC este calea fișierului sursă, :ALN este numărul liniei și ;PTN este potrivirea leneșă
model. ARG specifică argumentele acestui punct de probă, (vezi ARGUMENT PROBE).

SONDĂ ARGUMENT


Fiecare argument al probei urmează sintaxa de mai jos.

[NAME=]LOCALVAR|$retval|%REG|@SYMBOL[:TYPE]

NUME specifică numele acestui argument (opțional). Puteți folosi numele local
variabilă, membru local al structurii de date (de ex. var→field, var.field2), matrice locală cu fix
index (de exemplu, matrice[1], var→matrice[0], var→pointer[2]) sau formatul argumentului kprobe-tracer
(de ex. $retval, %ax, etc). Rețineți că numele acestui argument va fi setat ca ultimul
numele membrului dacă specificați un membru local al structurii de date (de exemplu, câmpul2 pentru
var→câmp1.câmp2.) $vars și $params argumente speciale sunt disponibile și pentru NAME, $vars
este extins la variabilele locale (inclusiv parametrii funcției) care pot accesa la
punct de sonda dat. $params este extins doar la parametrii funcției. TIP aruncă
tipul acestui argument (opțional). Dacă este omisă, sonda perf setează automat tipul în funcție de tip
pe debuginfo. Puteți specifica şir tastați numai pentru variabila locală sau membrul structurii
care este o matrice sau un pointer către car de război or nesemnat car de război tip.

Pe sistemele x86 %REG este întotdeauna forma scurtă a registrului: de exemplu %AX. %RAX sau
%EAX nu este valid.

LINE SINTAXĂ


Intervalul de linii este descris prin următoarea sintaxă.

„FUNC[@SRC][:RLN[+NUM|-RLN2]]|SRC[:ALN[+NUM|-ALN2]]”

FUNC specifică numele funcției de afișare a liniilor. RLN este numărul liniei de început de la
linia de intrare a funcției și RLN2 este numărul liniei finale. La fel ca sintaxa probei, SRC mijloace
calea fișierului sursă, ALN este numărul liniei de început și ALN2 este numărul de linie finală din fișier.
De asemenea, este posibil să specificați câte linii să afișați utilizând NUM. În plus, FUNC@SRC
combinația este bună pentru a căuta o anumită funcție atunci când mai multe funcții au aceeași
Nume. Deci, „source.c:100-120” arată linii între 100th și l20th în fișierul source.c. Și
„func:10+20” arată 20 de linii din a 10-a linie a funcției func.

LAZY ASOCIARE


Potrivirea liniei leneșe este similară cu potrivirea globului, dar ignorând spațiile atât în ​​model, cât și în țintă. Deci, acesta acceptă metacaractere('*', '?') și clase de caractere (de ex. [az], [!AZ]).

de exemplu a=* pot meciuri a = b, a = b, a == b şi aşa mai departe.

Acest lucru oferă un fel de flexibilitate și robustețe pentru a testa definițiile punctelor
modificări minore de cod. De exemplu, a 10-a linie reală a programului() poate fi mutată cu ușurință
modificarea schedule(), dar aceeași linie potrivire rq=cpu_rq* poate exista încă în
funcţie.)

FILTRU MODEL


Modelul de filtrare este un model de potrivire global pentru a filtra variabilele.
În plus, puteți folosi „!” pentru specificarea regulii de filtrare. De asemenea, puteți da mai multe reguli combinate cu „&” sau „|”, și să pliați acele reguli ca o singură regulă folosind „(" ")".

de exemplu, cu --filter „foo* | bar*”, sonda perf -V arată variabilele care încep cu „foo” sau
"bar". Cu --filter „!foo* & *bar”, sonda perf -V arată variabilele care nu încep cu
„foo” și se termină cu „bar”, ca „fizzbar”. Dar „foobar” este filtrat.

EXEMPLE


Afișați ce linii din schedule() pot fi testate:

./perf probe --line program

Adăugați o sondă pe linia a 12-a funcției program() cu variabila locală de înregistrare a CPU:

./perf probe program:12 cpu
or
./perf probe --add='schedule:12 cpu'

aceasta va adăuga una sau mai multe sonde care au numele care începe cu „schedule”.

Adăugați probe pe linii în funcția schedule() care apelează update_rq_clock().

./perf probe 'schedule;update_rq_clock*'
or
./perf probe --add='schedule;update_rq_clock*'

Ștergeți toate sondele conform programului().

./perf probe --del='schedule*'

Adăugați sonde la funcția zfree() pe /bin/zsh

./perf probe -x /bin/zsh zfree sau ./perf probe /bin/zsh zfree

Adăugați probe la funcția malloc() pe libc

./perf probe -x /lib/libc.so.6 malloc sau ./perf probe /lib/libc.so.6 malloc

Utilizați perf-probe online folosind serviciile onworks.net



Cele mai recente programe online Linux și Windows