2011-09-14 9 views
17

Çeşitli üçüncü taraf paylaşılan nesne kitaplıklarını kullanan bir linux x86 uygulamasına sahibim. Ben muhtemelen benim kod ;-) Linux üzerinde sızıntı bulmak için valgrind (memcheck) alternatif mi?

Ben güvenilir valgrind çalıştı olamaz çünkü bu kütüphaneler (bellek sızdırıyor şüpheli, ama korkunç bir ölüme çünkü one of the third-party libraries is using an obscure x86 instruction olduğunu valgrind doesn't implement öldü.

a recommendation for DUMA'u buldum ve bir deneyin (DUMA'yı çalışma zamanında getirmek için LD_PRELOAD tekniğini kullanarak) deneyin, ancak DUMA aracılığıyla tahsis edilmeyen bellekte ücretsiz bir işlemden şikayetçi oldu (neredeyse kesinlikle bir kurucu tarafından) Daha önce bahsedilen üçüncü taraf kütüphanelerden birinde statik bir nesnenin).

Linux üzerinde çalışacak başka çalışma zamanı bağlantısı (veya başka bir şekilde yeniden derleme/yeniden bağlanma gerektirmeyen) araçları var mı?

cevap

5

Dr. Memory bir deneyin. Bu DynamoRIO dayanmaktadır ve özelliklerin çoğunu Valgrind ile paylaşır.

+3

Sadece 32 bit olduğunu eklemek istedim. –

+0

@SantoshTiwari: Ben öyle düşünmüyorum. Platformunuz için ikili paketlerin sadece belirli bir platform için mevcut olabileceğini söylemek istediğinizi düşünüyorum. DynamoRIO esnek ve aynı zamanda (bazı) 64bit platformlarda çalışır. – 0xC0000022L

+1

~~ Dr.M ~~ Bu Dr. Memory sürümü, 64 bit uygulamaları desteklemiyor. –

0

Heapusage Linux ve macOS'ta bellek sızıntıları bulmak için basit bir çalışma zamanı aracıdır. Kaçaklar için çıkış günlüğü formatı Valgrind'e oldukça benzerdir, ancak yalnızca belirli sızıntıları (yani, sonlandırmada serbest olmayan tahsisleri) kaydeder.

Tam açıklama: Valgrind'in yetersiz olduğu durumlarda (yüksek performanslı uygulamalar ve ayrıca Valgrind tarafından desteklenmeyen CPU mimarileri için) kullanım için Heapusage yazdım.