← man/system_admin
ioclasscount — man ioclasscount — 80×24
ugur@toprak:~/man/system_admin$man ioclasscount
Bölüm 8 Sistem Yönetimi

ioclasscount

ioclasscount — macOS komut satırı aracı.

İsim

ioclasscount

Sinopsis

      ioclasscount [--track] [--leaks] [--maps=PID] [--site=SITE] [--reset] [--start] [--stop]
		  [--exclude] [--size=BAYT] [--capsize=BAYT] [--tag=etiket] [--zsize=BAYT]
		  [sınıf_adı] [...]

Açıklama

ioclasscount, çekirdekteki OSObject tabanlı C++ sınıflarının örnek (instance) sayılarını, en az 1 örnek sayısına sahip doğrudan alt sınıfların sayısıyla artırılmış olarak görüntüler. Örneğin, IONetworkController doğrudan örneklendirilmese bile, onun doğrudan alt sınıfı olan IOEthernetController herhangi bir örneğe sahipse, IONetworkController sınıfının örnek sayısı en az 1 olacaktır; IOFWController gibi başka bir doğrudan alt sınıfın da örnekleri varsa IONetworkController sınıfının örnek sayısı en az 2 olacaktır ve bu şekilde devam edecektir. (Örnek sayılarındaki bu değişiklik, örneği bulunmayan ancak diğer kext'lerdeki alt sınıflarında örnek bulunan üst sınıfları tanımlayan kext'lerin bellekten kaldırılmasını (unload) önler.)

Sınıflar belirtilirse, örnek sayıları belirtilen sırayla virgülle ayrılmış bir liste olarak yazdırılır. Herhangi bir sınıf belirtilmezse, tüm sınıfların örnek sayıları isme göre sıralanmış olarak her satıra bir tane gelecek şekilde yazdırılır.

Bu bilgi, sızıntıları (leaks) takip etmek için yararlıdır. Örnek sayıları ayrıca IORegistry kökündeki “IOKitDiagnostics” özelliğinde de bulunabilir.

Takip (Tracking)

DEVELOPMENT veya DEBUG çekirdekleri, IOMemoryDescriptor bellek eşleme ve kablolama (wiring) işlemlerinde ve önyükleme argümanı (boot-arg) io=0x00400000 ile çalışırken nesne tahsisi ve IOMalloc* çağrılarında geri izleme (backtrace) toplamayı destekler. boot-arg io=0x02400000 ile başlangıçta geri izleme yakalama etkinleştirilir.

Aşağıdaki işlenenler (operands) kullanılabilir:

  • --start: Tahsisleri yakalamayı başlatır.

  • --stop: Tahsisleri yakalamayı durdurur.

  • --reset: Toplanan tüm tahsisleri sıfırlar.

  • --track: Her bir çağrı konumu (callsite) için biriken tahsis edilen baytları ve çağrı sayısını, boyuta göre sıralanmış olarak sembolik geri izlemelerle birlikte görüntüler.

  • --maps=pid: Belirtilen pid değerine sahip süreçte oluşturulan eşlemeler için eşlenen baytları ve adresi, boyuta göre sıralanmış olarak sembolik geri izlemelerle görüntüler. Eğer pid değeri -1 ise tüm süreçler görüntülenir.

  • --site=site: Geri izlemeler görüntülenirken yalnızca "site" dizesini içerenler dahil edilir. Örneğin, site geri izlemedeki bir adres, bir sembol adı veya bir modül adı olabilir.

  • --leaks: Potansiyel sızıntılar için her bir çağrı konumunda biriken tahsis edilen baytları ve çağrı sayısını, boyuta göre sıralanmış olarak sembolik tahsis geri izlemeleriyle görüntüler. Sızıntılar, çekirdek sanal belleğinde bir tahsise yönelik işaretçi (pointer) referansları taranarak tespit edilir; hiçbir referans bulunamayan tahsisler potansiyel bir sızıntıdır.

  • --exclude: İsimler verilmişse, bu isimler hariç tüm takip kategorilerine komutu uygular.

  • --size=n: Yalnızca birikmiş boyutları >= n bayt olanları raporlar. Varsayılan değer 1 bayttır.

  • --capsize=n: Yalnızca >= n bayt olan tahsisleri yakalar. Varsayılan değer 1 bayttır.

  • --tag=etiket: Yalnızca belirtilen vm etiketine (tag) sahip tahsisleri raporlar.

  • --zsize=n: Yalnızca n bayt boyutundaki kalloc bölgesindeki tahsisleri raporlar.

Örnekler

     IOPCIDevice ve AppleTestPCI için örnek sayılarını görüntüleyin:

     /usr/sbin/ioclasscount IOPCIDevice AppleTestPCI
	    IOPCIDevice = 2, AppleTestPCI = 1

     Her şey için geri izleme toplamayı başlatın:

     /usr/sbin/ioclasscount --start

     Her şey için geri izlemeleri ve tahsis boyutlarını görüntüleyin:

     /usr/sbin/ioclasscount --track

     OSData ve OSSymbol için toplanan tüm geri izlemeleri ve tahsis boyutlarını görüntüleyin:

     /usr/sbin/ioclasscount --track OSData OSSymbol

     OSSymbol, IOMalloc*, IOMemoryDescriptor eşleme ve kablolama (IOKitDebug.h içindeki isimler) hariç
     toplanan tüm geri izlemeleri ve tahsis boyutlarını görüntüleyin:

     /usr/sbin/ioclasscount --track --exclude OSSymbol IOMalloc IOWire

Ayrıca Bakınız

ioalloccount(8), ioreg(8)

Darwin November 6, 2008 Darwin