Risposte:
Considerare il seguente codice con il puntatore dell'istruzione corrente (la riga che verrà eseguita successivamente, indicata da ->
) nella f(x)
riga in g()
, essendo stata chiamata dalla g(2)
riga in 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
}
}
Se si dovesse fare un passo in a quel punto, si sposta alla println()
riga f()
, entrando nella chiamata di funzione.
Se dovessi passare da quel punto in poi, ti sposterai sulla f(1)
linea g()
, scavalcando la chiamata di funzione.
Un'altra caratteristica utile di debugger è il passo su o la fase di ritorno. In tal caso, un ritorno a capo ti farà passare attraverso la funzione corrente fino a quando non salirai di un livello. In altre parole, passerà attraverso f(x)
e f(1)
, quindi, tornerà alla funzione di chiamata per finire in g(3)
inmain()
.
Eclipse (almeno Europa, che è l'unica che ho a portata di mano al momento) usa F5per step into
, F6per step over
e F7per step return
.
g(3)
; in main()
" <- Stai assumendo di essere arrivato alla posizione corrente da g(2)
e una volta che hai finito di tornare alla riga successiva g(3)
?
g(2)
o la g(3)
chiamata è attualmente attiva) quindi l'ho chiarito nel primo paragrafo. Grazie per il testa a testa.
Durante il debug di righe di codice, ecco i soliti scenari:
Eclipse ha altre funzionalità di debug avanzate, ma questi sono i fondamenti di base.
passo a scavare in chiamate di metodo
passo a passo eseguirà solo la linea e passerà al successivo
Non è possibile esaminare i dettagli del metodo utilizzando il passaggio sopra. Se si desidera saltare la riga corrente, è possibile utilizzare il passaggio, quindi è sufficiente premere F6una sola volta per passare alla riga successiva. E se pensi che ci sia qualcosa di sbagliato nel metodo, usa F5per esaminare i dettagli.
Step Into Viene invocata l'espressione successiva sulla riga attualmente selezionata da eseguire e l'esecuzione viene sospesa sulla riga eseguibile successiva nel metodo richiamato.
Passaggio La riga attualmente selezionata viene eseguita e sospende sulla riga eseguibile successiva.