Ini adalah perintah perf-probe yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa stasiun kerja online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
perf-probe - Tentukan titik jejak dinamis baru
RINGKASAN
Perf penyelidikan [pilihan] --add=SELALU [...]
or
Perf penyelidikan [pilihan] PROBE
or
Perf penyelidikan [opsi] --del=[GROUP:]ACARA [...]
or
Perf penyelidikan --list[=[GROUP:]ACARA]
or
Perf penyelidikan [opsi] --line=GARIS
or
Perf penyelidikan [opsi] --vars=PROBEPOIN
or
Perf penyelidikan [opsi] --fungsi
DESKRIPSI
Perintah ini mendefinisikan peristiwa tracepoint dinamis, dengan simbol dan register tanpa debuginfo,
atau dengan ekspresi C (nomor baris C, nama fungsi C, dan variabel lokal C) dengan
info debug
PILIHAN
-k, --vmlinux=JALAN
Tentukan jalur vmlinux yang memiliki debuginfo (Dwarf binary).
-m, --modul=NAMA MOD|JALAN
Tentukan nama modul di mana perf-probe mencari titik atau garis probe. Jika jalan
file modul dilewatkan, perf-probe memperlakukannya sebagai modul offline (ini berarti Anda dapat
tambahkan probe pada modul yang belum dimuat).
-s, --sumber=PATH
Tentukan jalur ke sumber kernel.
-v, --bertele-tele
Lebih bertele-tele (tampilkan argumen yang diuraikan, dll). Tidak dapat digunakan dengan -q.
-q, --tenang
Diam (jangan tampilkan pesan apa pun termasuk kesalahan). Tidak dapat digunakan dengan -v.
-a, --tambahkan=
Tentukan acara probe (lihat PROBE SYNTAX untuk detailnya).
-d, --del=
Hapus peristiwa penyelidikan. Ini menerima glob wildcard (*, ?) dan kelas karakter (mis
[az], [!AZ]).
-l, --list[=[GROUP:]ACARA]
Daftar acara penyelidikan saat ini. Ini juga dapat menerima pola pemfilteran nama peristiwa.
-L, --baris=
Tampilkan baris kode sumber yang dapat diperiksa. Ini membutuhkan argumen yang menentukan
jangkauan kode sumber. (lihat LINE SYNTAX untuk detailnya)
-V, --vars=
Tampilkan variabel lokal yang tersedia pada titik pemeriksaan yang diberikan. Sintaks argumennya sama dengan
PROBE SYNTAX, tapi TANPA ARG.
--eksternal
(Hanya untuk --vars) Menampilkan variabel terdefinisi eksternal selain variabel lokal.
--no-inline
(Hanya untuk --add) Hanya mencari fungsi non-inline. Fungsi yang tidak
memiliki contoh diabaikan.
-F, --fungsi[=FILTER]
Tampilkan fungsi yang tersedia dalam modul atau kernel yang diberikan. Dengan -x/--exec, bisa juga daftar
fungsi di ruang pengguna yang dapat dieksekusi/pustaka bersama. Ini juga dapat menerima FILTER
argumen aturan.
--filter=FILTER
(Hanya untuk --vars dan --funcs) Setel filter. FILTER adalah kombinasi dari pola glob, lihat
POLA FILTER untuk detail. FILTER Default adalah "!k???tab_* & !crc_*" untuk --vars, dan
"!_*" untuk --fungsi. Jika beberapa filter ditentukan, hanya filter terakhir yang digunakan.
-f, --kekuatan
Tambahkan acara secara paksa dengan nama yang ada.
-n, --lari-kering
Lari kering. Dengan opsi ini, --add dan --del tidak menjalankan penambahan dan penghapusan yang sebenarnya
operasi.
--max-probe=NUM
Tetapkan jumlah maksimum titik pemeriksaan untuk suatu peristiwa. Standarnya adalah 128.
-x, --exec=JALAN
Tentukan jalur ke file pustaka yang dapat dijalankan atau dibagikan untuk penelusuran ruang pengguna. Bisa juga
digunakan dengan opsi --funcs.
--demangle
Demangle simbol aplikasi. --no-demangle juga tersedia untuk dinonaktifkan
merusak.
--demangle-kernel
Demangle simbol kernel. --no-demangle-kernel juga tersedia untuk menonaktifkan kernel
merusak.
Dengan tidak adanya opsi -m/-x, pemeriksaan perf memeriksa apakah argumen pertama setelah opsi adalah
nama jalur absolut. Jika itu jalur absolut, probe perf menggunakannya sebagai target
modul/target biner ruang pengguna untuk diselidiki.
SELALU SINTAKSIS
Poin probe didefinisikan dengan sintaks berikut.
1) Tentukan acara berdasarkan nama fungsi
[EVENT=]FUNC[@SRC][:RLN|+OFFS|%return|;PTN] [ARG ...]
2) Tentukan acara berdasarkan file sumber dengan nomor baris
[PERISTIWA=]SRC:ALN [ARG ...]
3) Tentukan acara berdasarkan file sumber dengan pola malas
[PERISTIWA=]SRC;PTN [ARG ...]
EVENT menentukan nama acara baru, jika dihilangkan, itu akan menetapkan nama yang diselidiki
fungsi. Saat ini, nama grup acara ditetapkan sebagai penyelidikan. FUNC menentukan fungsi yang diselidiki
nama, dan mungkin memiliki salah satu opsi berikut; +MATI adalah offset dari fungsi
alamat entri dalam byte, :RLN adalah nomor baris relatif dari baris entri fungsi, dan
%kembali berarti bahwa ia menyelidiki kembalinya fungsi. Dan ;PTN berarti pola pencocokan malas (lihat
PENCOCOKAN MALAS). Perhatikan bahwa ;PTN harus menjadi akhir dari definisi titik probe. Selain itu,
@SRC menentukan file sumber yang memiliki fungsi itu. Hal ini juga memungkinkan untuk menentukan
titik probe dengan nomor baris sumber atau pencocokan malas dengan menggunakan SRC:ALN or SRC; PTN sintaksis,
dimana SRC adalah jalur file sumber, :ALN adalah nomor baris dan ;PTN adalah pencocokan malas
pola. ARG menentukan argumen dari titik penyelidikan ini, (lihat ARGUMEN PROBE).
SELALU ARGUMEN
Setiap argumen penyelidikan mengikuti sintaks di bawah ini.
[NAMA=]LOCALVAR|$retval|%REG|@SYMBOL[:TYPE]
NAMA menentukan nama argumen ini (opsional). Anda dapat menggunakan nama lokal
variabel, anggota struktur data lokal (misalnya var→field, var.field2), array lokal dengan fixed
indeks (misalnya array[1], var→array[0], var→pointer[2]), atau format argumen kprobe-tracer
(misalnya $retval, %ax, dll). Perhatikan bahwa nama argumen ini akan ditetapkan sebagai yang terakhir
nama anggota jika Anda menentukan anggota struktur data lokal (mis. field2 untuk
var→bidang1.bidang2.) $var dan $param argumen khusus juga tersedia untuk NAME, $var
diperluas ke variabel lokal (termasuk parameter fungsi) yang dapat diakses di
titik probe yang diberikan. $param diperluas ke hanya parameter fungsi. JENIS melemparkan
jenis argumen ini (opsional). Jika dihilangkan, probe perf secara otomatis mengatur jenis berdasarkan
di debuginfo. Anda dapat menentukan string ketik hanya untuk variabel lokal atau anggota struktur
yang merupakan array atau pointer ke tangki or unsigned tangki mengetik.
Pada sistem x86 %REG selalu merupakan bentuk pendek dari register: misalnya %AX. %RAX atau
%EAX tidak valid.
GARIS SINTAKSIS
Rentang garis dijelaskan dengan sintaks berikut.
"FUNC[@SRC][:RLN[+NUM|-RLN2]]|SRC[:ALN[+NUM|-ALN2]]"
FUNC menentukan nama fungsi untuk menunjukkan garis. RLN adalah nomor baris awal dari
baris entri fungsi, dan RLN2 adalah nomor baris akhir. Sama seperti sintaks probe, SRC cara
jalur file sumber, ALN adalah nomor baris awal, dan ALN2 adalah nomor baris akhir dalam file.
Dimungkinkan juga untuk menentukan berapa banyak baris yang akan ditampilkan dengan menggunakan NUM. Selain itu, FUNC@SRC
kombinasi baik untuk mencari fungsi tertentu ketika beberapa fungsi berbagi sama
nama. Jadi, "source.c:100-120" menunjukkan baris antara 100 hingga l20 dalam file source.c. Dan
"func:10+20" menunjukkan 20 baris dari baris ke-10 fungsi fungsi.
MALAS SESUAI
Pencocokan garis malas mirip dengan pencocokan glob tetapi mengabaikan spasi di kedua pola dan target. Jadi ini menerima wildcard('*', '?') dan kelas karakter (misalnya [az], [!AZ]).
misalnya sebuah=* bisa cocok a = b, a = b, a == b dan seterusnya.
Ini memberikan semacam fleksibilitas dan ketahanan untuk menyelidiki definisi titik terhadap
perubahan kode kecil. Misalnya, baris jadwal ke-10 yang sebenarnya () dapat dipindahkan dengan mudah oleh
memodifikasi jadwal(), tetapi pencocokan baris yang sama rq=cpu_rq* mungkin masih ada di
fungsi.)
FILTER POLA
Pola filter adalah pola pencocokan glob untuk memfilter variabel.
Selain itu, Anda dapat menggunakan "!" untuk menentukan aturan filter-out. Anda juga dapat memberikan beberapa aturan yang digabungkan dengan "&" atau "|", dan lipat aturan tersebut menjadi satu aturan dengan menggunakan "(" ")".
misalnya Dengan --filter "foo* | bar*", perf probe -V menunjukkan variabel yang dimulai dengan "foo" atau
"batang". Dengan --filter "!foo* & *bar", perf probe -V menunjukkan variabel yang tidak dimulai dengan
"foo" dan diakhiri dengan "bar", seperti "fizzbar". Tapi "foobar" disaring.
CONTOH
Tampilkan baris mana dalam schedule() yang dapat diperiksa:
./perf probe --jadwal baris
Tambahkan probe pada fungsi schedule() baris ke-12 dengan merekam variabel lokal cpu:
./perf jadwal pemeriksaan: 12 cpu
or
./perf probe --add='schedule:12 cpu'
ini akan menambahkan satu atau lebih probe yang namanya dimulai dengan "jadwal".
Tambahkan probe pada baris dalam fungsi schedule() yang memanggil update_rq_clock().
./perf probe 'schedule;update_rq_clock*'
or
./perf probe --add='schedule;update_rq_clock*'
Hapus semua probe pada schedule().
./perf probe --del='schedule*'
Tambahkan probe pada fungsi zfree() pada /bin/zsh
./perf probe -x /bin/zsh zfree atau ./perf probe /bin/zsh zfree
Tambahkan probe di fungsi malloc() di libc
./perf probe -x /lib/libc.so.6 malloc atau ./perf probe /lib/libc.so.6 malloc
Gunakan perf-probe online menggunakan layanan onworks.net