2010-01-17 18 views
8

Come posso utilizzare i numeri nello stacktrace? Cosa significano? in Eclipse ricevo spesso delle eccezioni, ad esempio, un NullPointerException:Cosa significano i numeri nella traccia dello stack?

java.lang.NullPointerException 
    at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(+68) 
    at com.sun.midp.lcdui.AutomatedEventHandler.commandEvent(+47) 
    at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.handleVmEvent(+186) 
+0

Che cos'è JVM? –

risposta

13

Quelli sono gli offset della istruzione che ha causato l'eccezione a partire dall'inizio del metodo.

java.lang.NullPointerException 
    at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(+68) 

L'istruzione all'offset 68 nel metodo com.sun.midp.lcdui.DefaultEventHandler.commandEvent causa l'eccezione effettiva accedendo riferimento null.

at com.sun.midp.lcdui.AutomatedEventHandler.commandEvent(+47) 

L'istruzione all'offset 47 nel metodo com.sun.midp.lcdui.AutomatedEventHandler.commandEvent è un'istruzione chiamata che esegue il metodo com.sun.midp.lcdui.DefaultEventHandler.commandEvent.

at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.handleVmEvent(+186) 

L'istruzione all'offset 186 nel metodo com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.handleVmEvent è un'istruzione chiamata che esegue il metodo com.sun.midp.lcdui.AutomatedEventHandler.commandEvent.

+0

E in quale unità viene misurato questo offset? in numeri di linea immagino .. o nelle istruzioni? E cosa conta come una linea/istruzione? quale dovrebbe essere l'offset se c'è un'eccezione all'interno di doSomething2()? if (true) { doSomething1(); doSomething2(); } – hsmit

+0

È lo scostamento bytecode nel codice compilato. I debugger possono usarlo per mappare il numero di linea nel codice sorgente. Senza le informazioni di debug aggiuntive che associano i bytecode ai numeri di riga di origine, non è banale trovare la linea di origine semplicemente osservando il numero. –

+0

Ok, grazie! Puoi anche dirmi come mappare gli offset del bytecode agli offset della linea del codice sorgente? – hsmit

Problemi correlati