2012-02-12 14 views
16

Czasami, gdy sprawdzam kod, którego nie napisałem, uruchamiam zaćmienie w trybie debugowania i używam cyfr do zrozumienia programu. Na przykład, jeśli są one n pozycji pobranych z DB, może być interesujące wiedzieć, że w usłudze znajduje się n przetworzonych elementów, itp.Debugowanie i liczenie trafień punktów przerwania

Gdy używane są pętle, rzeczy stają się bardziej skomplikowane: jeśli jesteśmy w pętli "while" liczba wykonań nie jest zdefiniowana, a jeśli istnieją alternatywy, przepływ wykonania może się znacznie zmienić.

W tym celu czasami ustawiam punkt przerwania w części kodu i policzam, ile razy go osiągamy.

Oczywiście nie jest to bardzo wygodne i zastanawiam się, czy istnieje sposób na policzenie liczby trafień w punkcie przerwania. Wiem, że Eclipse może zawiesić wykonywanie po ustalonej liczbie trafień, ale chcę tylko, aby Eclipse policzył je w normalnym przepływie realizacji.

Chętnie wysłucham twoich opinii na ten temat.

Dzięki!

Odpowiedz

18

Możesz dodać warunek do punktu przerwania. Najprostszy jeden mógłby wyglądać tak:

System.err.println("Passing checkpoint"); 
return false; 

Możesz również rozszerzyć go nazywając swoją klasę statyczną:

org.foo.StaticCounter.COUNTER++; 
System.err.println("Passing checkpoint " + org.foo.StaticCounter.COUNTER); 
return false; 
+0

Sprytny. Myślę, że zawsze będę przechowywać klasę StaticCounter w moim pakiecie narzędzi. Może być pomocny przy debugowaniu kodów procedur nieobiektowych :) Dzięki! –

1

Jako alternatywę do liczenia punktów przerwań, można użyć narzędzia do profilowania, takie jako jeden here.

+0

Myślę, że twoja odpowiedź jest właściwa, ale liczyć trafienia punktu przerwania, jestem bardziej zainteresowany zrozumieniem przetwarzania niż analizowaniem wydajności. Potwierdzam pewne intuicje, oceniając, ile razy powinniśmy pójść w kawałku kodu. Używam go jednak do złożonych nieformalnych kodów proceduralnych. Dzięki za odpowiedź i tak :) –

Powiązane problemy