perf-probe - Bulutta Çevrimiçi

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi öykünücüsü veya MAC OS çevrimiçi öykünücüsü gibi birden çok ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen komut perf-probe'dur.

Program:

ADI


perf-probe - Yeni dinamik izleme noktaları tanımlayın

SİNOPSİS


perf sonda [seçenekler] --add=DERİNLEŞ [...]
or
perf sonda [seçenekler] PROB
or
perf sonda [seçenekler] --del=[GRUP:]ETKİNLİK [...]
or
perf sonda --list[=[GRUP:]EVENT]
or
perf sonda [seçenekler] --line=LINE
or
perf sonda [seçenekler] --vars=sonda noktası
or
perf sonda [seçenekler] --fonksiyonlar

AÇIKLAMA


Bu komut, dinamik izleme noktası olaylarını sembolle tanımlar ve hata ayıklama bilgisi olmadan kaydeder,
veya C ifadeleri (C satır numaraları, C işlev adları ve C yerel değişkenleri) ile
hata ayıklama bilgisi.

SEÇENEKLER


-k, --vmlinux=YOL
Debuginfo (Cüce ikili) içeren vmlinux yolunu belirtin.

-m, --module=MODNAME|YOL
Perf-probe'un araştırma noktalarını veya çizgilerini aradığı modül adını belirtin. Eğer bir yol
modül dosyası iletildiyse, perf-probe onu çevrimdışı bir modül olarak ele alır (bu, yapabileceğiniz anlamına gelir)
henüz yüklenmemiş bir modüle bir sonda ekleyin).

-s, --source=YOL
Çekirdek kaynağına giden yolu belirtin.

-v, --ayrıntılı
Daha ayrıntılı olun (ayrıştırılmış argümanları gösterin, vb.). -q ile kullanılamaz.

-q, --sessiz
Sessiz olun (hatalar dahil hiçbir mesajı göstermeyin). -v ile kullanılamaz.

-a, --ekle=
Bir araştırma olayı tanımlayın (ayrıntılar için PROB SÖZÜMÜ'ne bakın).

-d, --del=
İnceleme olaylarını silin. Bu, glob joker karakterlerini kabul eder (*, ?) ve karakter sınıfları (örn.
[az], [!AZ]).

-l, --list[=[GRUP:]EVENT]
Mevcut araştırma olaylarını listeleyin. Bu, olay adlarının filtreleme modellerini de kabul edebilir.

-L, --satır=
İncelenebilecek kaynak kod satırlarını gösterin. Bunun belirten bir argümana ihtiyacı var.
kaynak kodu aralığı. (ayrıntılar için LINE SYNTAX'a bakın)

-V, --vars=
Verilen araştırma noktasında mevcut yerel değişkenleri göster. Argüman sözdizimi şununla aynıdır:
PROB SİNTAKSI, ancak ARG YOK.

--harici
(Yalnızca --vars için) Yerel değişkenlere ek olarak harici tanımlı değişkenleri göster.

-- satır içi yok
(Yalnızca --add için) Yalnızca satır içi olmayan işlevleri arayın. olmayan fonksiyonlar
örnekleri yoksayılır.

-F, --fonksiyonlar[=FİLTRE]
Verilen modülde veya çekirdekte mevcut işlevleri göster. -x/--exec ile ayrıca listeleyebilir
bir kullanıcı alanı yürütülebilir / paylaşılan kitaplığındaki işlevler. Bu aynı zamanda bir FİLTRE kabul edebilir
kural argümanı.

--filter=FİLTRE
(Yalnızca --vars ve --funcs için) Filtreyi ayarlayın. FILTER, glob deseninin bir birleşimidir, bkz.
FİLTRE DESENİ detay için. Varsayılan FİLTRE "!k???tab_* & !--vars için crc_*" ve
--funcs için "!_*". Birkaç filtre belirtilirse, yalnızca son filtre kullanılır.

-f, --kuvvet
Mevcut ada sahip etkinlikleri zorla ekleyin.

-n, --kuru çalışma
Kuru çalışma. Bu seçenekle, --add ve --del gerçek ekleme ve çıkarma işlemini gerçekleştirmez.
işlemleri.

--max-probes=SAYI
Bir olay için maksimum araştırma noktası sayısını ayarlayın. Varsayılan 128'dir.

-x, --exec=YOL
Kullanıcı alanı izleme için yürütülebilir veya paylaşılan kitaplık dosyasının yolunu belirtin. Ayrıca
--funcs seçeneği ile kullanılabilir.

--deangle
Demangle uygulama sembolleri. --no-demangle devre dışı bırakmak için de kullanılabilir
parçalayıcı.

--demangle-çekirdek
Çekirdek sembollerini demangle. --no-demangle-kernel, çekirdeği devre dışı bırakmak için de kullanılabilir
parçalayıcı.

-m/-x seçeneklerinin yokluğunda, mükemmel araştırma, seçeneklerden sonraki ilk argümanın olup olmadığını kontrol eder.
mutlak bir yol adı. Mutlak bir yolsa, mükemmel prob onu hedef olarak kullanır
modül/hedef kullanıcı alanı araştırmak için ikili.

DERİNLEŞ SÖZDİZİMİ


Prob noktaları, aşağıdaki sözdizimi ile tanımlanır.

1) Olayı fonksiyon adına göre tanımlayın
[EVENT=]İŞLEV[@SRC][:RLN|+OFFS|%return|;PTN] [ARG ...]

2) Satır numarası ile kaynak dosyaya dayalı olayı tanımlayın
[EVENT=]SRC:ALN [ARG ...]

3) Tembel desenli kaynak dosyaya dayalı olayı tanımlayın
[EVENT=]SRC;PTN [ARG ...]

OLAY yeni olayın adını belirtir, atlanırsa, incelenenin adı belirlenir.
işlev. Şu anda etkinlik grubu adı şu şekilde ayarlanmıştır: sonda. FUNC bir problanan işlevi belirtir
ad ve aşağıdaki seçeneklerden birine sahip olabilir; +KAPALILAR fonksiyondan ofsettir
bayt cinsinden giriş adresi, :RLN fonksiyon giriş satırından göreli satır numarasıdır ve
%dönüş işlev dönüşünü araştırdığı anlamına gelir. Ve ;PTN tembel eşleştirme kalıbı anlamına gelir (bkz.
TEMBEL EŞLEŞTİRME). Bunu not et ;PTN araştırma noktası tanımının sonu olmalıdır. Ek olarak,
@SRC bu işleve sahip bir kaynak dosyayı belirtir. belirtmek de mümkündür.
kaynak satır numarasına göre araştırma noktası veya kullanarak tembel eşleştirme SRC:ALN or SRC;PTN sözdizimi,
nerede SRC kaynak dosya yolu, :ALN satır numarası ve ;PTN tembel eşleşme
desen. ARG bu araştırma noktasının argümanlarını belirtir (bkz. PROB ARGUMENT).

DERİNLEŞ ARGUMENT


Her araştırma argümanı aşağıdaki sözdizimini takip eder.

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

ADI bu argümanın adını belirtir (isteğe bağlı). yerel adını kullanabilirsiniz
değişken, yerel veri yapısı üyesi (örn. var→field, var.field2), sabitli yerel dizi
dizin (örn. dizi[1], var→array[0], var→pointer[2]) veya kprobe-tracer argüman formatı
(örn. $retval, %ax, vb.). Bu argümanın adının son olarak ayarlanacağını unutmayın.
yerel bir veri yapısı üyesi belirtirseniz üye adı (örn.
var→alan1.alan2.) $ değişkenleri ve $paramları NAME için özel argümanlar da mevcuttur, $ değişkenleri
adresinden erişilebilen yerel değişkenlere (fonksiyon parametreleri dahil) genişletilir.
verilen sonda noktası. $paramları yalnızca işlev parametrelerine genişletilir. TİP atar
bu bağımsız değişkenin türü (isteğe bağlı). Atlanırsa, mükemmel prob, türü temel alarak otomatik olarak ayarlar
debuginfo'da. belirtebilirsiniz dizi yalnızca yerel değişken veya yapı üyesi için yazın
hangi bir dizi veya bir işaretçi tank or imzasız tank yazın.

x86 sistemlerinde %REG her zaman kaydın kısa biçimidir: örneğin %AX. %RAX veya
%EAX geçerli değil.

LINE SÖZDİZİMİ


Satır aralığı, aşağıdaki sözdizimi ile tanımlanır.

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

FUNC, satırları gösteren fonksiyon adını belirtir. RLS başlangıç ​​satırı numarası
fonksiyon giriş satırı ve RLN2 bitiş satırı numarasıdır. Prob sözdizimi ile aynı şekilde, SRC anlamına geliyor
kaynak dosya yolu, ALN başlangıç ​​satırı numarasıdır ve ALN2 dosyadaki bitiş satır numarasıdır.
Kullanarak kaç satır gösterileceğini belirtmek de mümkündür. NUM. Ayrıca, İŞLEV@SRC
kombinasyon, birkaç işlev aynı şeyi paylaştığında belirli bir işlevi aramak için iyidir.
isim. Bu nedenle, "source.c:100-120", source.c dosyasında 100. ile l20. arasındaki satırları gösterir. Ve
"func:10+20", func işlevinin 20. satırından 10 satırı gösterir.

TEMBEL EŞLEŞTİRME


Tembel çizgi eşleştirme, glob eşleştirmeye benzer, ancak hem desen hem de hedefteki boşlukları yok sayar. Bu, joker karakterleri ('*', '?') ve karakter sınıflarını (örn. [az], [!AZ]) kabul eder.

örneğin bir=* eşleşebilir a = b, a = b, a == b ve benzerleri.

Bu, nokta tanımlarını aşağıdakilere karşı araştırmak için bir tür esneklik ve sağlamlık sağlar.
küçük kod değişiklikleri. Örneğin, program() öğesinin gerçek 10. satırı şu şekilde kolayca hareket ettirilebilir:
program()'ı değiştirmek, ancak aynı satır eşleşmesi rq=cpu_rq* hala mevcut olabilir
işlev.)

FILTRE MODEL


Filtre kalıbı, değişkenleri filtrelemek için bir glob eşleşen kalıp(lar)dır.
Ayrıca, "!" Kullanabilirsiniz. filtreleme kuralı belirtmek için. Ayrıca "&" veya "|" ile birleştirilmiş birkaç kural verebilir ve "(" ")" kullanarak bu kuralları tek bir kural olarak katlayabilirsiniz.

örneğin --filter "foo* | bar*" ile, perf probe -V "foo" ile başlayan değişkenleri gösterir veya
"bar". --filter "!foo* & *bar" ile, perf probe -V ile başlamayan değişkenleri gösterir
"foo" ve "fizzbar" gibi "bar" ile bitiyor. Ancak "foobar" filtrelenir.

ÖRNEKLER


Schedule() içindeki hangi satırların araştırılabileceğini göster:

./perf probe --line zamanlama

cpu yerel değişkenini kaydeden program() işlevi 12. satırına bir sonda ekleyin:

./perf araştırma programı:12 işlemci
or
./perf probe --add='program:12 işlemci'

bu, adı "schedule" ile başlayan bir veya daha fazla araştırma ekleyecektir.

update_rq_clock()'u çağıran program() işlevindeki satırlara sondalar ekleyin.

./perf araştırması 'schedule;update_rq_clock*'
or
./perf probe --add='schedule;update_rq_clock*'

Schedule() üzerindeki tüm araştırmaları silin.

./perf prob --del='program*'

/bin/zsh üzerindeki zfree() işlevinde problar ekleyin

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

libc'de malloc() işlevinde sondalar ekleyin

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

onworks.net hizmetlerini kullanarak perf-probe'u çevrimiçi kullanın



En yeni Linux ve Windows çevrimiçi programları