perf-probe — online w chmurze

Jest to polecenie sondy wydajności, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu Mac OS

PROGRAM:

IMIĘ


perf-probe - Zdefiniuj nowe dynamiczne punkty śledzenia

STRESZCZENIE


perf sonda [opcje] --dodaj=SONDA [...]
or
perf sonda [opcje] SONDA
or
perf sonda [opcje] --del=[GRUPA:]WYDARZENIE [...]
or
perf sonda --list[=[GRUPA:]WYDARZENIE]
or
perf sonda [opcje] --line=LINE
or
perf sonda [opcje] --vars=PUNKT Sonda
or
perf sonda [opcje] --funcs

OPIS


To polecenie definiuje zdarzenia dynamicznego punktu śledzenia, za pomocą symbolu i rejestrów bez debuginfo,
lub przez wyrażenia C (numery linii C, nazwy funkcji C i zmienne lokalne C) z
Informacje debugowania.

OPCJE


-k, --vmlinux=ŚCIEŻKA
Podaj ścieżkę vmlinux, która zawiera informacje o debugowaniu (plik binarny Dwarf).

-m, --module=NAZWA MODU|ŚCIEŻKA
Określ nazwę modułu, w którym perf-probe wyszukuje punkty lub linie sondy. Jeśli ścieżka z
przekazano plik modułu, perf-probe potraktuj go jako moduł offline (oznacza to, że możesz
dodać sondę do modułu, który nie został jeszcze załadowany).

-s, --source=ŚCIEŻKA
Określ ścieżkę do źródła jądra.

-v, --pełne
Bądź bardziej gadatliwy (pokaż przeanalizowane argumenty itp.). Nie można używać z -q.

-q, --cichy
Bądź cicho (nie pokazuj żadnych komunikatów, w tym błędów). Nie można używać z -v.

-a, --dodaj=
Zdefiniuj zdarzenie sondy (szczegóły w części SKŁADNIA SONDY).

-d, --del=
Usuń zdarzenia sondujące. To akceptuje symbole wieloznaczne glob (*, ?) i klasy znaków (np.
[az], [!AZ]).

-l, --list[=[GRUPA:]ZDARZENIE]
Lista bieżących zdarzeń sondowania. Może to również akceptować wzorce filtrowania nazw zdarzeń.

-L, --linia=
Pokaż linie kodu źródłowego, które można sondować. Wymaga to argumentu, który określa
zakres kodu źródłowego. (zobacz SKŁADNIA LINII po szczegóły)

-V, --zmienne=
Pokaż dostępne zmienne lokalne w danym punkcie sondy. Składnia argumentów jest taka sama jak
SKŁADNIA SONDY, ale BEZ ARG.

--zewnętrzne
(Tylko dla --vars) Pokazuje zewnętrzne zdefiniowane zmienne oprócz zmiennych lokalnych.

--no-inline
(Tylko dla --add) Szukaj tylko funkcji nieliniowych. Funkcje, które nie
mają instancje są ignorowane.

-F, --funcs[=FILTR]
Pokaż dostępne funkcje w danym module lub jądrze. Z -x/--exec można również wyświetlić
funkcje w wykonywalnej/współdzielonej bibliotece w przestrzeni użytkownika. To również może zaakceptować FILTR
argument reguły.

--filter=FILTR
(Tylko dla --vars i --funcs) Ustawia filtr. FILTER to połączenie wzoru kulistego, patrz
WZÓR FILTRA dla szczegółów. Domyślny FILTR to „!k???zakładka_* & !crc_*" dla --vars i
"!_*" dla --funcs. Jeśli określono kilka filtrów, używany jest tylko ostatni filtr.

-f, --siła
Wymuszaj dodawanie wydarzeń o istniejącej nazwie.

-n, --przebieg próbny
Próba. Dzięki tej opcji --add i --del nie wykonują faktycznego dodawania ani usuwania
operacje.

--max-probes=LICZBA
Ustaw maksymalną liczbę punktów sondowania dla zdarzenia. Wartość domyślna to 128.

-x, --exec=ŚCIEŻKA
Określ ścieżkę do pliku wykonywalnego lub współdzielonej biblioteki do śledzenia w przestrzeni użytkownika. Może także
być używane z opcją --funcs.

--demangować
Symbole aplikacji Demangle. --no-demangle jest również dostępny do wyłączenia
rozczesywanie.

--demangle-jądro
Rozszyfrować symbole jądra. --no-demangle-kernel jest również dostępny do wyłączania jądra
rozczesywanie.

W przypadku braku opcji -m/-x, sonda perf sprawdza, czy pierwszym argumentem po opcjach jest
bezwzględna nazwa ścieżki. Jeśli jest to ścieżka bezwzględna, sonda perf używa jej jako celu
moduł/docelowy plik binarny przestrzeni użytkownika do sondowania.

SONDA SKŁADNIA


Punkty sondy są zdefiniowane według następującej składni.

1) Zdefiniuj zdarzenie na podstawie nazwy funkcji
[EVENT=]FUNC[@SRC][:RLN|+OFFS|%zwrot|;PTN] [ARG ...]

2) Zdefiniuj zdarzenie na podstawie pliku źródłowego z numerem wiersza
[EVENT=]SRC:ALN [ARG...]

3) Zdefiniuj zdarzenie na podstawie pliku źródłowego z leniwym wzorcem
[EVENT=]SRC;PTN [ARG...]

EVENT określa nazwę nowego zdarzenia, jeśli zostanie pominięte, zostanie ustawiona nazwa sondowanego
funkcjonować. Obecnie nazwa grupy wydarzeń jest ustawiona jako sonda. FUNC określa sondowaną funkcję
nazwa i może mieć jedną z następujących opcji; +OFFY jest przesunięciem od funkcji
adres wejścia w bajtach, :RLN jest względnym numerem wiersza z wiersza wprowadzania funkcji, a
%powrót oznacza, że ​​sonduje powrót funkcji. I ;PTN oznacza leniwy pasujący wzór (patrz
LENIWE DOPASOWANIE). Zauważ, że ;PTN musi być końcem definicji punktu sondy. Ponadto,
@SRC określa plik źródłowy, który ma tę funkcję. Możliwe jest również określenie
punkt sondy przez numer linii źródłowej lub leniwe dopasowanie za pomocą SRC:ALN or SRC;PTN składnia,
gdzie SRC to ścieżka pliku źródłowego, :ALN to numer wiersza i ;PTN jest leniwe dopasowanie
wzór. ARG określa argumenty tego punktu sondy (patrz PROBE ARGUMENT).

SONDA ARGUMENT


Każdy argument sondy ma następującą składnię.

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

IMIĘ określa nazwę tego argumentu (opcjonalnie). Możesz użyć nazwy lokalnego
zmienna, lokalny element struktury danych (np. var→field, var.field2), lokalna tablica ze stałym
indeks (np. tablica[1], zmienna→tablica[0], zmienna→wskaźnik[2]) lub format argumentu kprobe-tracer
(np. $retval, %ax itp.). Zauważ, że nazwa tego argumentu zostanie ustawiona jako ostatnia
nazwa członka, jeśli określisz lokalny element struktury danych (np. pole2 dla
var→pole1.pole2.) $wars oraz $paramy specjalne argumenty są również dostępne dla NAME, $wars
jest rozszerzany na zmienne lokalne (w tym parametry funkcji), do których można uzyskać dostęp pod adresem
podany punkt sondy. $paramy jest rozszerzony tylko do parametrów funkcji. TYP rzuca
typ tego argumentu (opcjonalnie). Jeśli zostanie pominięty, sonda perf automatycznie ustawi typ na podstawie
na informacje debugowania. Możesz określić ciąg wpisz tylko dla zmiennej lokalnej lub elementu struktury
który jest tablicą lub wskaźnikiem do zwęglać or unsigned zwęglać rodzaj.

W systemach x86 %REG jest zawsze skróconą formą rejestru: na przykład %AX. %RAX lub
%EAX jest nieprawidłowy.

LINE SKŁADNIA


Zakres linii opisuje następująca składnia.

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

FUNC określa nazwę funkcji pokazywania linii. RLN to numer linii początkowej od
wiersz wprowadzania funkcji oraz RLN2 to numer linii końcowej. Tak samo jak składnia sondy, SRC znaczy
ścieżka do pliku źródłowego, ALN to numer linii początkowej, a ALN2 to numer linii końcowej w pliku.
Możliwe jest również określenie, ile wierszy ma być wyświetlanych za pomocą NUM, Co więcej, FUNC@SRC
kombinacja jest dobra do wyszukiwania określonej funkcji, gdy kilka funkcji ma to samo
Nazwa. Tak więc "source.c:100-120" pokazuje linie od 100 do 20 w pliku source.c. I
"func:10+20" pokazuje 20 linii z 10. linii funkcji func.

LAZY PASUJĄCY


Dopasowywanie leniwych linii jest podobne do dopasowywania globów, ale ignoruje spacje zarówno we wzorcu, jak i celu. Tak więc akceptuje to symbole wieloznaczne ('*', '?') i klasy znaków (np. [az], [!AZ]).

na przykład a=* czy pasuje? a = b, a = b, a == b i tak dalej.

Zapewnia to pewien rodzaj elastyczności i odporności w odniesieniu do definicji punktów sondowania
drobne zmiany w kodzie. Na przykład, rzeczywistą dziesiątą linię harmonogramu() można łatwo przenieść za pomocą
modyfikowanie schedule(), ale dopasowywanie tej samej linii rq=procesor_rq* może nadal istnieć w
funkcjonować.)

FILTER WZÓR


Wzorzec filtru to globalny wzorzec pasujący do wzorców filtrowania zmiennych.
Ponadto możesz użyć „!” do określania reguły filtrowania. Możesz również podać kilka reguł w połączeniu z "&" lub "|" i złożyć je jako jedną regułę, używając "(" ")".

np. Z --filter "foo* | bar*" sonda perf -V pokazuje zmienne, które zaczynają się od "foo" lub
"bar". Z --filter "!foo* & *bar", sonda perf -V pokazuje zmienne, które nie zaczynają się od
„foo” i zakończ na „bar”, np. „fizzbar”. Ale "foobar" jest odfiltrowany.

PRZYKŁADY


Wyświetl, które wiersze w schedule() mogą być sondowane:

./perf probe --line harmonogram

Dodaj sondę do funkcji schedule() 12. wiersz z zapisem zmiennej lokalnej procesora:

./perf harmonogram sondy: 12 cpu
or
./perf probe --add='harmonogram:12 procesorów'

to doda jedną lub więcej sond, których nazwa zaczyna się od "schedule".

Dodaj sondy do linii w funkcji schedule(), która wywołuje update_rq_clock().

./perf sonda 'harmonogram;aktualizacja_rq_clock*'
or
./perf sonda --add='harmonogram;aktualizacja_rq_clock*'

Usuń wszystkie sondy zgodnie z harmonogramem().

./perf sonda --del='harmonogram*'

Dodaj sondy w funkcji zfree() w /bin/zsh

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

Dodaj sondy w funkcji malloc() w libc

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

Korzystaj z sondy perf-probe online za pomocą usług onworks.net



Najnowsze programy online dla systemów Linux i Windows