Odpowiedzi:
Rozważ następujący kod z bieżącym wskaźnikiem instrukcji (linia, która zostanie wykonana następnie, oznaczona przez ->
) w f(x)
linii w g()
, ponieważ została wywołana przez g(2)
linię w main()
:
public class testprog {
static void f (int x) {
System.out.println ("num is " + (x+0)); // <- STEP INTO
}
static void g (int x) {
-> f(x); //
f(1); // <----------------------------------- STEP OVER
}
public static void main (String args[]) {
g(2);
g(3); // <----------------------------------- STEP OUT OF
}
}
Jeśli było krok w tym momencie, można przejść do println()
linii f()
, wchodząc do wywołania funkcji.
Jeśli były do kroku na tym punkcie, można przejść do f(1)
linii g()
, depcząc po wywołaniu funkcji.
Kolejną przydatną funkcją debuggerów jest wyjście lub powrót. W takim przypadku krok powrotny będzie zasadniczo przeprowadzał cię przez bieżącą funkcję, dopóki nie wrócisz o jeden poziom wyżej. Innymi słowy, będzie to krok po kroku f(x)
i f(1)
, a następnie wycofać się do funkcji wywołującej skończyć się g(3)
w main()
.
Zaćmienie (przynajmniej Europa, która w tej chwili jest jedyną, którą mam pod ręką) używa F5dla step into
, F6dla step over
i F7dla step return
.
g(3)
; w main()
„ <- Czy zakładasz, że dotarłeś do bieżącej lokalizacji zg(2)
a kiedy skończysz możesz powrócić do następnego wiersza g(3)
?
g(2)
lub g(3)
połączenie jest aktualnie aktywne) więc mam wyczyszczone, że w pierwszym akapicie. Dzięki za heads-upy.
Podczas debugowania wierszy kodu, oto typowe scenariusze:
Eclipse ma inne zaawansowane funkcje debugowania, ale są to podstawowe podstawy.
step into wykopie wywołania metod
step over po prostu wykona linię i przejdzie do następnego
Nie możesz przejść do szczegółów tej metody, używając kroku krok po kroku. Jeśli chcesz pominąć bieżącą linię, możesz użyć kroku wstecz, wystarczy nacisnąć F6tylko raz, aby przejść do następnej linii. A jeśli uważasz, że w metodzie jest coś nie tak, skorzystaj z niej, F5aby sprawdzić szczegóły.
Krok do następnego Wywołane zostanie następne wyrażenie w aktualnie wybranej linii do wykonania, a wykonanie zawiesza się w kolejnej linii wykonywalnej w wywoływanej metodzie.
Step Over Aktualnie wybrana linia jest wykonywana i zawiesza się w następnej linii wykonywalnej.