2012-09-30 15 views

Odpowiedz

8

można zrobić z ostatniej wersji (3.8.1) Valgrind:

Rozpocznij wykonywalny aktywacji gdbserver przy starcie:

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

Następnie w innym oknie, podłącz gdb Valgrind (zgodnie ze wskazówkami podanymi przez Valgrind). następnie umieścić przerwania w odpowiednim miejscu (na przykład na koniec główny) i obsługi Gdb polecenia

continue 

aż do osiągnięcia punktu przerwania. Następnie zrobić wyszukiwania wyciekać z gdb:

monitor leak_check full reachable any 

wtedy lista adres (-y) osiągalnych bloków odpowiedniego rekordu strata nr

monitor block_list <loss_record_nr> 

można następnie wykorzystać możliwości gdb zbadać pamięć podanego adresu (-ów). Zauważ również potencjalnie interesujące polecenie "who_points_at" , jeśli szukasz, kto ma wskaźnik do tej pamięci.

+1

Otrzymuję "' valgrind: Bad opcja: --vgdb-error = 0 ". (valgrind-3.6.1) – panzi

+0

@panzi Myślę, że to działa tylko od 3.8.1 powyżej, jak wspomniano ppw. Próbowałem tego z valgrind-3.11.0 i nie było żadnych problemów. – Nubcake