2012-09-30 14 views

cevap

8

valgrind son sürümü (3.8.1) ile yapabilirsiniz:

başlangıçta gdbserver aktive senin yürütülebilir başlatın

: başka bir pencerede Sonra

valgrind --vgdb-error=0 ....<your program> 

, Valgrind bir gdb bağlamak (Valgrind tarafından verilen işaretlerini takiben). Sonra (örneğin ana sonunda) alakalı bir yerde bir kesme noktası koymak ve kesme noktası ulaşıldığında kadar GDB

continue 

komutunu kullanın. Daha sonra belleği incelemek için gdb özellikleri kullanabilirsiniz

monitor block_list <loss_record_nr> 

monitor leak_check full reachable any 

Ardından ilgili kayıp rekor nr ulaşılabilir blokların adres (ler) listelemek: Sonra gdb bir kaçak arama yapmak Verilen adres (ler). Ayrıca, bu anahtara bir işaretçi tutmuş olan birini arıyorsanız, potansiyel olarak ilginç olan "who_points_at" komutunu da not edin.

+1

"Valgrind: Bad option: --vgdb-error = 0'" alıyorum. (valgrind-3.6.1) – panzi

+0

@panzi Sanırım bu sadece 3.8.1'den yukarıda belirtilen ppw olarak çalışıyor. Bunu valgrind-3.11.0 ile denedim ve problem olmadı. – Nubcake