Stavo usando il debugger Java in Intellij 8 e ho notato un pulsante con l'etichetta "drop frame", qualcuno sa quale scopo serve? Come/perché dovrebbe essere usato/utile?Quando si utilizza il debugger Java in Intellij cosa significa "Drop Frame"?
risposta
Lo stack di chiamate dell'applicazione può essere visualizzato nel debugger. Usando la funzionalità "Drop Frame" puoi "ricadere" su un frame stack precedente, in un certo senso tornare indietro nel tempo. Questo può essere utile per rientrare in una funzione se hai perso un punto critico che vorresti vedere di nuovo.
Come suggerisce il nome "Frame di stack", le modifiche già apportate allo stato globale (come variabili statiche, modifiche ai valori di campo e simili) non verranno annullate, ma solo le variabili locali vengono ripristinate. Questo può portare a un percorso di esecuzione diverso rispetto a quello che originariamente ha portato al tuo punto di rottura. È necessario essere consapevoli di questo: spesso lo considero una funzionalità utile per esplorare diversi percorsi di esecuzione senza dover riavviare l'applicazione o un particolare processo lungo che ha portato allo stack corrente. Combinato con il cambiamento dei valori delle variabili disponibile anche tramite il debugger, puoi fare ogni sorta di cose interessanti.
Si prega di notare che, naturalmente, eventuali effetti collaterali che potrebbero essersi verificati - e. g. traffico di rete, manipolazioni di file, output della console ecc. - non possono essere riavvolti.
L'eliminazione dei frame dallo stack utilizzando il debugger consente essenzialmente di "riavvolgere" l'esecuzione dell'applicazione per raggiungere uno stato precedente. Le variabili al di fuori del frame dello stack non vengono ripristinate.
Come nota a margine, credo che questa funzione si chiami "Rilasciare su Frame" in Eclipse, ma ha lo stesso scopo.
frame goccia all'interno del debugger apre stack frame corrente e mette controllo indietro al metodo chiamante, ripristinando eventuali variabili locali. Questo è molto utile per fare ripetutamente il passo attraverso una funzione, ma attenzione: le mutazioni dei campi o lo stato globale rimarranno.
Vedere ulteriori informazioni here.
- 1. Il debugger IntelliJ si blocca
- 2. Che cosa significa quando il metodo è italico intellij idea?
- 3. Il codice C# funziona solo quando si utilizza il debugger?
- 4. perdita di frame quando si utilizza do.call
- 5. Cosa significa: = significa quando usato in pseudocodice?
- 6. Cosa significa "*** Frame più vecchio" in ipdb?
- 7. Cosa significa "DisplayClass" quando si chiama lambda?
- 8. Che cosa significa? "mi_cmd_stack_list_frames: frame insufficienti nello stack".
- 9. Cosa significa "sincronizzato" in Java?
- 10. setup intellij per chiedere il parametro type quando si utilizza generics in java
- 11. È possibile eseguire il debug con Python debugger quando si utilizza py.test in qualche modo?
- 12. in java cosa significa il simbolo @?
- 13. Che cosa significa il simbolo @ in java?
- 14. Visualizzazione copertura mostra 0,0% in Intellij quando si utilizza Jacoco
- 15. falsi errori quando si utilizza libreria di gatti in IntelliJ
- 16. EXC_BAD_ACCESS (codice = 1, indirizzo = 0x0) quando si esegue il debugger
- 17. In Java, cosa significa NaN?
- 18. Cosa imposta inizialmente il parametro ReturnUrl quando si utilizza AuthorizeAttribute
- 19. Filtri passo debugger in IntelliJ?
- 20. Cosa significa line.split (",") [1] significa [Java]?
- 21. Cosa significa() in un'espressione lambda quando si usano le azioni?
- 22. Che cosa significa Exploded Development? (In Java)
- 23. Cosa significa = ~ significa in Perl
- 24. Come utilizzare "interruzione" originale in un ciclo quando si utilizza il pry-debugger
- 25. FileNotFoundException quando si utilizza il file delle proprietà java
- 26. Cosa significa il seguente errore?
- 27. Cosa significa il prefisso: significa
- 28. Che cosa significa quando si ha una variabile come l'accesso a $ 002 in Java?
- 29. Cosa significa ">>" in java
- 30. Copia profonda quando si utilizza ArrayList in java