Ini ialah perintah perf-probe yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.
JADUAL:
NAMA
perf-probe - Tentukan titik jejak dinamik baharu
SINOPSIS
sempurna siasatan [pilihan] --add=PROBE [...]
or
sempurna siasatan [pilihan] PROBE
or
sempurna siasatan [pilihan] --del=[KUMPULAN:]ACARA [...]
or
sempurna siasatan --list[=[GROUP:]EVENT]
or
sempurna siasatan [pilihan] --line=LINE
or
sempurna siasatan [pilihan] --vars=PROBEPOINT
or
sempurna siasatan [pilihan] --fungsi
DESCRIPTION
Perintah ini mentakrifkan peristiwa titik jejak dinamik, dengan simbol dan daftar tanpa debuginfo,
atau dengan ungkapan C (nombor baris C, nama fungsi C dan pembolehubah tempatan C) dengan
debuginfo.
PILIHAN
-k, --vmlinux=PATH
Tentukan laluan vmlinux yang mempunyai debuginfo (Dwarf binary).
-m, --module=MODNAME|PATH
Nyatakan nama modul di mana perf-probe mencari titik atau garisan probe. Jika jalan daripada
fail modul diluluskan, perf-probe menganggapnya sebagai modul luar talian (ini bermakna anda boleh
tambahkan probe pada modul yang belum dimuatkan lagi).
-s, --source=PATH
Tentukan laluan ke sumber kernel.
-v, --verbose
Jadi lebih bertele-tele (tunjukkan hujah yang dihuraikan, dll). Tidak boleh digunakan dengan -q.
-q, --senyap
Senyap (jangan tunjukkan sebarang mesej termasuk ralat). Tidak boleh digunakan dengan -v.
-a, --tambah=
Tentukan peristiwa siasatan (lihat SINTAKSIS PROBE untuk butiran).
-d, --del=
Padamkan peristiwa siasatan. Ini menerima kad bebas glob(*, ?) dan kelas watak(cth
[az], [!AZ]).
-l, --list[=[GROUP:]EVENT]
Senaraikan peristiwa siasatan semasa. Ini juga boleh menerima corak penapisan nama acara.
-L, --line=
Tunjukkan baris kod sumber yang boleh disiasat. Ini memerlukan hujah yang menentukan a
julat kod sumber. (lihat SINTAKSIS BARIS untuk butiran)
-V, --vars=
Tunjukkan pembolehubah tempatan yang tersedia pada titik probe yang diberikan. Sintaks hujah adalah sama seperti
SINTAKSIS PROBE, tetapi TIADA ARG.
--luaran
(Hanya untuk --vars) Tunjukkan pembolehubah yang ditentukan luaran sebagai tambahan kepada pembolehubah tempatan.
--tiada-sebaris
(Hanya untuk --add) Cari hanya untuk fungsi tidak sebaris. Fungsi yang tidak
mempunyai contoh diabaikan.
-F, --funcs[=FILTER]
Tunjukkan fungsi yang tersedia dalam modul atau kernel yang diberikan. Dengan -x/--exec, boleh juga menyenaraikan
berfungsi dalam ruang pengguna boleh laku / perpustakaan kongsi. Ini juga boleh menerima PENAPIS
hujah peraturan.
--filter=PENAPIS
(Hanya untuk --vars dan --funcs) Tetapkan penapis. FILTER ialah gabungan corak glob, lihat
CORAK PENAPIS untuk perincian. PENAPIS lalai ialah "!k???tab_* & !crc_*" untuk --vars, dan
"!_*" untuk --funcs. Jika beberapa penapis ditentukan, hanya penapis terakhir digunakan.
-f, --force
Tambah secara paksa acara dengan nama sedia ada.
-n, --lari kering
Larian kering. Dengan pilihan ini, --add dan --del tidak melaksanakan penambahan dan penyingkiran sebenar
operasi.
--maks-probes=NUM
Tetapkan bilangan maksimum titik probe untuk sesuatu acara. Lalai ialah 128.
-x, --exec=PATH
Tentukan laluan ke fail perpustakaan boleh laku atau kongsi untuk pengesanan ruang pengguna. Boleh juga
digunakan dengan pilihan --funcs.
--demangle
Demangle simbol aplikasi. --no-demangle juga tersedia untuk melumpuhkan
demangling.
--demangle-kernel
Demangle simbol kernel. --no-demangle-kernel juga tersedia untuk melumpuhkan kernel
demangling.
Jika tiada pilihan -m/-x, perf probe menyemak sama ada hujah pertama selepas pilihan adalah
nama laluan mutlak. Jika ia adalah laluan mutlak, perf probe menggunakannya sebagai sasaran
binari ruang pengguna modul/sasaran untuk disiasat.
PROBE SISTEM
Titik probe ditakrifkan dengan mengikuti sintaks.
1) Tentukan acara berdasarkan nama fungsi
[EVENT=]FUNC[@SRC][:RLN|+OFFS|%return|;PTN] [ARG ...]
2) Tentukan acara berdasarkan fail sumber dengan nombor baris
[EVENT=]SRC:ALN [ARG ...]
3) Tentukan acara berdasarkan fail sumber dengan corak malas
[EVENT=]SRC;PTN [ARG ...]
PERISTIWA menentukan nama acara baharu, jika ditinggalkan, ia akan ditetapkan nama yang disiasat
fungsi. Pada masa ini, nama kumpulan acara ditetapkan sebagai siasatan. FUNGSI menentukan fungsi yang disiasat
nama, dan ia mungkin mempunyai salah satu daripada pilihan berikut; +OFF ialah offset daripada fungsi
alamat kemasukan dalam bait, :RLN ialah nombor baris relatif daripada baris masukan fungsi, dan
%pulang bermakna ia menyiasat kembali fungsi. Dan ;PTN bermaksud corak padanan malas (lihat
MALAS MATCHING). Perhatikan bahawa ;PTN mestilah penghujung definisi titik siasatan. Sebagai tambahan,
@SRC menentukan fail sumber yang mempunyai fungsi itu. Ia juga mungkin untuk menentukan a
titik kuar dengan nombor talian sumber atau pemadanan malas dengan menggunakan SRC:ALN or SRC;PTN sintaks,
di mana SRC ialah laluan fail sumber, :ALN ialah nombor baris dan ;PTN adalah padanan yang malas
. ARG menentukan hujah titik siasatan ini, (lihat HUJAH PROBE).
PROBE ARGUMEN
Setiap hujah siasatan mengikut sintaks di bawah.
[NAME=]LOCALVAR|$retval|%REG|@SYMBOL[:TYPE]
NAMA menentukan nama hujah ini (pilihan). Anda boleh menggunakan nama tempatan
pembolehubah, ahli struktur data tempatan (cth var→field, var.field2), tatasusunan tempatan dengan tetap
indeks (cth array[1], var→array[0], var→pointer[2]), atau format hujah kprobe-tracer
(cth $retval, %ax, dll). Ambil perhatian bahawa nama hujah ini akan ditetapkan sebagai yang terakhir
nama ahli jika anda menentukan ahli struktur data setempat (cth medan2 untuk
var→field1.field2.) $vars and $params hujah khas juga tersedia untuk NAME, $vars
dikembangkan kepada pembolehubah tempatan (termasuk parameter fungsi) yang boleh mengakses di
titik probe yang diberikan. $params dikembangkan kepada parameter fungsi sahaja. JENIS melemparkan
jenis hujah ini (pilihan). Jika diabaikan, perf probe secara automatik menetapkan berdasarkan jenis
pada debuginfo. Anda boleh menentukan rentetan taip hanya untuk pembolehubah tempatan atau ahli struktur
yang merupakan tatasusunan atau penunjuk kepada tangki or tidak ditandatangani tangki jenis.
Pada sistem x86 %REG sentiasa dalam bentuk ringkas daftar: contohnya %AX. %RAX atau
%EAX tidak sah.
LINE SISTEM
Julat baris diterangkan dengan mengikuti sintaks.
"FUNC[@SRC][:RLN[+NUM|-RLN2]]|SRC[:ALN[+NUM|-ALN2]]"
FUNC menentukan nama fungsi untuk menunjukkan baris. RLN ialah nombor baris permulaan daripada
baris masuk fungsi, dan RLN2 ialah nombor baris akhir. Sama seperti sintaks siasatan, SRC cara
laluan fail sumber, ALN ialah nombor baris permulaan, dan ALN2 ialah nombor baris akhir dalam fail.
Ia juga mungkin untuk menentukan bilangan baris untuk ditunjukkan dengan menggunakan NUM. Selain itu, FUNC@SRC
gabungan adalah baik untuk mencari fungsi tertentu apabila beberapa fungsi berkongsi sama
nama. Jadi, "source.c:100-120" menunjukkan baris antara ke-100 hingga ke-20 dalam fail source.c. Dan
"func:10+20" menunjukkan 20 baris daripada baris ke-10 fungsi fungsi.
LAZY PERTANDINGAN
Padanan garis malas adalah serupa dengan padanan glob tetapi mengabaikan ruang dalam kedua-dua corak dan sasaran. Jadi ini menerima kad bebas('*', '?') dan kelas aksara(cth [az], [!AZ]).
contohnya a=* boleh padan a = b, a = b, a == b dan sebagainya.
Ini memberikan semacam fleksibiliti dan keteguhan untuk menyiasat definisi titik terhadapnya
perubahan kod kecil. Sebagai contoh, baris ke-10 sebenar jadual() boleh dialihkan dengan mudah oleh
mengubah suai jadual(), tetapi padanan baris yang sama rq=cpu_rq* mungkin masih wujud dalam
fungsi.)
FILTER CORAK
Corak penapis ialah corak padanan glob untuk menapis pembolehubah.
Di samping itu, anda boleh menggunakan "!" untuk menentukan peraturan penapisan keluar. Anda juga boleh memberikan beberapa peraturan digabungkan dengan "&" atau "|", dan lipat peraturan tersebut sebagai satu peraturan dengan menggunakan "(" ")".
cth Dengan --filter "foo* | bar*", perf probe -V menunjukkan pembolehubah yang bermula dengan "foo" atau
"bar". Dengan --filter "!foo* & *bar", perf probe -V menunjukkan pembolehubah yang tidak bermula dengan
"foo" dan diakhiri dengan "bar", seperti "fizzbar". Tetapi "foobar" ditapis keluar.
CONTOH
Paparkan baris mana dalam jadual() boleh disiasat:
./perf probe --line schedule
Tambah probe on schedule() fungsi baris ke-12 dengan merakam pembolehubah tempatan cpu:
./perf jadual probe:12 cpu
or
./perf probe --add='schedule:12 cpu'
ini akan menambah satu atau lebih probe yang mempunyai nama bermula dengan "jadual".
Tambah probe pada baris dalam fungsi schedule() yang memanggil update_rq_clock().
./perf probe 'jadual;update_rq_clock*'
or
./perf probe --add='schedule;update_rq_clock*'
Padamkan semua probe mengikut jadual().
./perf probe --del='schedule*'
Tambah probe pada fungsi zfree() pada /bin/zsh
./perf probe -x /bin/zsh zfree atau ./perf probe /bin/zsh zfree
Tambah probe pada fungsi malloc() pada libc
./perf probe -x /lib/libc.so.6 malloc atau ./perf probe /lib/libc.so.6 malloc
Gunakan perf-probe dalam talian menggunakan perkhidmatan onworks.net