2009-06-21 5 views

risposta

11

IntelliJ interagisce con una JVM in esecuzione tramite l'interfaccia di debug di Java standard, in modo che possa eseguire il debug dei programmi con diversi JDK. Questo non supporta lo spostamento del punto di esecuzione come descritto.

Consente di riavvolgere lo stack di chiamate ed eseguire nuovamente una chiamata di metodo. In IntelliJ, utilizza la finestra dei thread per selezionare una cornice di stack di un filo sospeso e tornare indietro. Quindi continuare la discussione per richiamare il metodo in quel punto nel programma.

Nota: questo non ripristinerà lo stato degli oggetti, pertanto potrebbero verificarsi effetti strani.

+22

Dannazione Visual Studio, perché devi essere così fantastico? : P – dialex

+0

Stavo cercando modi per riprendere il puntatore di debug all'inizio del metodo. non c'è modo come "richiamare" il metodo. per me, ho lasciato cadere il frame superiore e ho rieseguito la funzione. – zinking

-7

Java non ha un puntatore di esecuzione corrente che può puntare a un pezzo di codice casuale. Java presuppone che l'ordine di esecuzione sia nel codice, non qualcosa che dovresti manipolare.

Forse potresti spiegare perché vorresti farlo e possiamo farti sapere un altro modo per ottenere la stessa cosa.

+5

È molto utile eseguire il debug :) – ripper234

+0

Puoi fare un esempio? –

+9

Un esempio potrebbe essere quando si ha un errore nel codice che impedisce di eseguirlo ulteriormente, ma al momento non si è interessati a questo, quindi si vuole saltare quella parte. O vuoi saltare un pezzo di codice per vedere cosa succederebbe se non fosse eseguito (ad esempio per dimostrare che una supposizione è corretta) e tu sei pronto a farlo senza ricompilare tutto. – axk

-2

È possibile indicare al debugger "Inoltra alla linea" in avanti.

2

In Eclipse, se si modifica un metodo in fase di debug causando l'aggiornamento del codice di debug, la JVM esegue il rollback dell'esecuzione nel primo posto sicuro. Di solito questa è la prima riga di quel metodo.

È molto utile in uno scenario di debug.