2010-01-17 4 views
8

Comment puis-je utiliser les numéros dans la pile de pile? Qu'est-ce que cela signifie? En éclipse je reçois souvent des exceptions, par exemple un NullPointerException:Que signifient les nombres dans la trace de la pile?

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

Qu'est-ce que JVM est-ce? –

Répondre

13

Ce sont les décalages de l'instruction qui a provoqué l'exception du début de la méthode.

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

L'instruction à décalage 68 dans le procédé est à l'origine com.sun.midp.lcdui.DefaultEventHandler.commandEvent l'exception réelle en accédant à une référence nulle.

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

L'instruction à l'offset 47 dans la méthode com.sun.midp.lcdui.AutomatedEventHandler.commandEvent est une instruction d'appel qui exécute la méthode com.sun.midp.lcdui.DefaultEventHandler.commandEvent.

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

L'instruction de décalage à 186 dans le procédé com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.handleVmEvent est une instruction d'appel qui exécute le procédé com.sun.midp.lcdui.AutomatedEventHandler.commandEvent.

+0

Et dans quelle unité ce décalage est-il mesuré? dans les numéros de ligne je suppose .. ou dans les instructions? Et qu'est-ce qui compte comme une ligne/instruction? quel devrait être le décalage s'il y a une exception dans doSomething2()? if (true) { fait quelque chose1(); faireQuelque chose2(); } – hsmit

+0

C'est le décalage du bytecode dans le code compilé. Les débogueurs peuvent l'utiliser pour mapper le numéro de ligne dans le code source. Sans les informations de débogage supplémentaires qui mappent les codes bytecodes aux numéros de ligne source, il n'est pas trivial de trouver la ligne source juste en regardant le numéro. –

+0

Ok, merci! Pouvez-vous également me dire comment mapper les décalages de bytecode aux décalages de ligne de code source? – hsmit

Questions connexes