Ancak, diğerlerinden farklı olarak, LMDBG * FULL * stacktracesand başına modül bazında bir uygulama analiz analiz thusallowing gelen oturum ayırır üretir;.
LMDBG bellek leaksand çift özgürleştirmekte & nbsp tespit sağlar bir uygulamadır.
- lmdbg-run bir ana lmdbg aracıdır. Bir uygulamayı çalıştırır ve bir günlük dosyası oluşturur (veya fifo) burada tüm olarak adlandırılan malloc / calloc / realloc / ücretsiz / memalign / posix_memalign çağrıları onların girişi ile kayıtlı (bayt sayısı, işaretçi), çıkış (işaretçi) ve (!!! uniques özelliği !!!) FULL StackTrace (işaretçiler).
Örnek:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Cat testleri / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; #include
& Nbsp; & nbsp; & nbsp; & nbsp; main () int
& Nbsp; & nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; void * p1 = null;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; void * p2 = null;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; P1 = Malloc (555);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p2 = realloc (P2, 666);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p2 = realloc (P2, 777);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p2 = realloc (P2, 888);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0 dönmek;
& Nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; & nbsp; $ Gcc O0 -g -o _test2 testler / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-run -o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; $ Cat _log
& Nbsp; & nbsp; & nbsp; & nbsp; Malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (NULL, 666) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804874e
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (0xbb901800, 777) -> 0xbb901c00
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048764
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
NOT: Tam StackTrace, uygulamanızı analiz olanak verir Taşları / bileşenleri diğerlerinden neden daha fazla bellek gerektirir ne algılayabilir yani. lmdbg-sim bunun için çok önemli bir araçtır, aşağıya bakın.
- lmdbg-sızıntıları lmdbg-run ve çıkış bulunan tüm bellek sızıntıları tarafından oluşturulan bir günlük dosyası analizi
Örnek:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-kaçakları _log & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; Malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
- lmdbg-sim source.c adresleri dönüştürür: 999 mümkünse
Örnek (gdb (1) eylem ise):
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-sim ./_test2 _log
& Nbsp; & nbsp; & nbsp; & nbsp; Malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Testler / test2.c: 8 ana
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (NULL, 666) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804874e & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Testler / test2.c: 9 ana
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (0xbb901800, 777) -> 0xbb901c00
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048764 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Testler / test2.c: 10 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ana
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Testler / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ana
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
Örnek (addr2line (1) burada çalışıyor):
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-sim -a ./_test2 _log
& Nbsp; & nbsp; & nbsp; & nbsp; Malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Testler / test2.c: 8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (NULL, 666) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804874e & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Testler / test2.c: 9
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (0xbb901800, 777) -> 0xbb901c00
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048764 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Testler / test2.c: 10
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Testler / test2.c: 11
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
- lmdbg-sysleaks - greps veya atlar sistem bellek sızıntıları testleri / lmdbg * .conf dosyaları Bkz, libdl, C ++ stl vb libc bulundu. Varsayılan yapılandırma dosyaları: ~ / .lmdbg.conf ve /etc/lmdbg.conf
- lmdbg = lmdbg-run + lmdbg-kaçakları + lmdbg-sim + lmdbg-sysleaks
Bu lmdbg all-in-one üst düzey bir araçtır.
Örnek:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg v -o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; Bellek sızıntıları dosya tespit ve kaydedilen '_log'
& Nbsp; & nbsp; & nbsp; & nbsp; $ Cat _log
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Testler / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ana
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; Malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Testler / test2.c: 8 ana
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
Yeni Bu sürümde ne:
- lmdbg-sim artık segfaults nedeniyle stacktrace ile ilgili sorunlar (3).
- çok daha basit ve doğru adres dönüştürme yöntemi eklendi.
- nedeniyle gdb için optimizasyonlar önemli speedups vardı.
- lmdbg vadede, GLIBC malloc kanca artık kullanılmaz.
- lmdbg kendi kod stacktraces dahil değildir.
- Yeni N seçenek eklendi, ve -v seçeneği küçük bir düzeltme aldı.
- lmdbg-istatistik ücretsiz (3) veya realloc (3) StackTrace uygun malloc / realloc (3) stacktrace idi eğer ortaya bir NULL dereference için düzeltmeleri aldı.
- Diğer küçük düzeltmeler ve geliştirmeler, regresyon testleri iyileştirmeler ve (3). stacktrace gelişmeler vardı
sürüm 1.1.0 yeni nedir:.
- regresyon testlerinde bir düzeltme
- lmdbg-run:. Sıfır adresleri glibc en backtrace (3) tarafından oluşturulan stacktraces çıkarılır
- Bu giderir lmdbg-stat (1) belirtmektedir.
- Çift & quot; 0x & quot; bilgi bölümünde & quot; & quot konular; tespit edildi (NetBSD görülen).
- backtrace (3) (varsa) yerine yerleşik uygulaması. arasında kullanılır
- lmdbg-sim:. Bir kaç hata sembollere adresleri dönüşüm tespit edildi
- lmdbg-istatistik: eksik okuma çizgiler artık göz ardı, bu nedenle orada fazla iddia (3) ayıklanacak bir uygulama öldürdü zaman s .
- awk yazılı bir alternatif uygulama kaldırıldı.
Libexecinfo
nedir sürüm 0.17.0 Yeni:
- Bu sürüm geliştirmeleri ve düzeltmeleri çok ekler manuel sayfaları, lmdbg, lmdbg-run, ve lmdbg-sym yeni yetenekleri ve küçük düzeltmeler lmdbg-istatistik için.
- lmdbg şimdi sadece bellek sızıntıları bulmak değil, çok daha fazla şeyler yapmak için güçlü bir meta aracı.
nedir sürüm 0.15.1 Yeni:
- calloc Günlüğü (3) çağırmaları üzerine devre dışı glibc-tabanlı sistemler (Linux, GNU / kFreeBSD ve belki diğerleri), çünkü lmdbg-run onlara başarısız olur.
- Küçük, temiz-up, düzeltmeler, iyileştirmeler. mk-configure & gt;. = 0.20 bina için gerekli
nedir sürüm 0.14.0 Yeni:
- Yeni araçlar: lmdbg-stat lmdbg-grep toplama ve bellek ayırmalarını hakkında istatistiki bilgiler analiz etmek için lmdbg-sıralama ve.
- lmdbg-run: lmdbg-çalıştırmak için yeni seçenekler:. Kısaltılmış stacktraces üretmek için -S ve -M
- lmdbg-sim:. Lmdbg-run en çıkışından programın adını almak için yeni bir seçenek -p
- düzeltme: 'mkcmake testi' geçici dosyaları siler .
Yorum Bulunamadı