man/system_diagnostics
man · Sistem Tanılama

$ stringdups

Bölüm 1 · Sistem Tanılama

Hedef sürecin malloc bloklarındaki yinelenen dizgileri veya diğer nesneleri tanımlar

Kullanım

     stringdups [-minimumCount count] [-stringsOnly] [-nostacks] [-callTrees] [-invertCallTrees]
		pid | partial-executable-name | memory-graph-file

Açıklama

stringdups, belirtilen hedef süreçteki malloc bloklarının içeriğini inceler. Aynı içeriğe sahip tüm bloklar için bu tür blokların sayısını, toplam tahsis edilen boyutlarını (yalnızca içeriklerinin belirli boyutu değil, malloc yığınındaki (heap) toplam boyutu) ve ortalama tahsis edilen boyutu gösteren bir satır görüntüler.

stringdups bir argüman gerektirir; bu argüman incelenecek sürecin kimliği (PID), tam veya kısmi yürütülebilir dosya adı ya da leaks tarafından oluşturulmuş bir bellek grafiği dosyasının yoludur. stringdups ile kullanılmak üzere leaks ile bir bellek grafiği oluşturulurken, belleğin içeriğini açıklayan etiketleri dahil etmek için -fullContent argümanının kullanılması gerekir.

Hedef süreç başlatıldığında MallocStackLogging ortam değişkeni ayarlanmışsa, stringdups ayrıca belirli bir içerik grubuyla ilişkilendirilen tüm blokların nerede tahsis edildiğini gösteren yığın geri izlemelerini (stack backtrace) veya çağrı ağaçlarını (call tree) görüntüler.

stringdups, aşağıdakiler de dahil olmak üzere çeşitli türlerdeki blokların içeriğini toplar:

• C dizgileri (herhangi bir uzunlukta, null sonlandırmalı, UTF8 karakterlerinden oluşan) • Pascal dizgileri (başında uzunluk baytı bulunan, 255 karakterden uzun olmayan, null sonlandırmalı olması zorunlu olmayan, UTF8 karakterlerinden oluşan) • Tüm türlerdeki NSString'ler (değiştirilemez (immutable), değiştirilebilir (mutable), UTF8, Unicode). Satır içi olmayan (non-inline) veya değiştirilebilir NSString'lerin depolama blokları olan malloc blokları ayrı olarak listelenir. Dizgi içeriği her ikisi için de gösterilir, ancak blok boyutları, o özel depolama dilimi için malloc yığınında gerçekte neyin tahsis edildiğini doğru bir şekilde gösterir. • NSDate • NSNumber • NSPathStore2 (Cocoa'nın dosya yollarını temsil etme biçimi) • NSMallocBlock Bunlar için stringdups, bu depolamanın ilişkili olduğu kod bloğunun (^) sembol adını gösterir. Hata ayıklama (debug) bilgileri mevcutsa, kod bloğunun kaynak yolu ve satır numarası da gösterilir. • NSArray, NSSet ve NSDictionary gibi koleksiyon sınıfları için öge sayıları

Seçenekler

  • -minimumCount count: Yalnızca hedef süreçte en az count kez görünen nesne açıklamaları için bilgi yazdırır. Varsayılan minimum sayı 2'dir. Hedef süreçteki tüm dizgileri görmek için 1 değerini kullanın veya 'heap -addresses all' komutunu çalıştırın.

  • -stringsOnly: Yalnızca C veya Pascal dizgileri ya da NSString gibi dizgi içeriğine sahip nesneler için bilgi yazdırır.

  • -nostacks: Hedef süreçte MallocStackLogging ortam değişkeni ayarlanmış olsa bile yığın geri izlemelerini veya çağrı ağaçlarını yazdırmaz.

  • -callTrees: Yığın geri izlemeleri mevcutsa, varsayılan olarak belirli bir yığın geri izlemesine ait tüm nesne açıklamaları bir araya getirilir. Ancak bu argüman geçilirse çıktı her bir özel dizgiye göre birleştirilir ve bu açıklamaya sahip nesnelerin tüm örneklerinin tahsis geri izlemelerini gösteren bir çağrı ağacı görüntülenir. minimumCount değeri düşükse bu çıktı çok uzun olabilir, çünkü aynı çağrı ağacı birçok kez görüntülenebilir.

  • -invertCallTrees: Çağrı ağaçlarının en sıcak (hottest) yığın çerçevesinden en soğuk (coldest) yığın çerçevesine doğru yazdırılması ve böylece yaprak malloc çağrısının ilk sırada görünmesi dışında -callTrees ile aynıdır.

Ayrıca Bkz.

heap(1), leaks(1), malloc_history(1), vmmap(1), DevToolsSecurity(1)