web-dev-qa-db-fra.com

Pourquoi Eclipse n'affiche pas les valeurs des variables locales lorsque je débogue le fichier de classe à partir de JDK?

Je veux déboguer des fichiers .class. Par exemple, certains du JDK. J'ai téléchargé les sources et les ai attachées.

public File[] listFiles(FilenameFilter paramFilenameFilter)
{
   String[] arrayOfString = list(); // now we here
   if (arrayOfString == null) return null;
   ....
}

Ensuite, je tape F6 et je passe à la ligne suivante. Après cela, j'essaie de regarder la valeur de arrayOfString mais je vois ce qui suit:

Vue d'expression:

Est-ce normal une situation? Y a-t-il un moyen de déboguer?

Mise à jour 1:

enter image description here


Mise à jour 2:

enter image description here

Mise à jour 3:

enter image description here

17
gstackoverflow

Le problème est que les fichiers source/classe du JDK sont compilés sans informations de débogage et qu'Eclipse ne peut donc pas inspecter ces vars. Voir cette réponse pour plus d'informations.

Pour résoudre votre problème, vous devez vous procurer un autre fichier rt.jar ou le compiler vous-même

17
Absurd-Mind

Lorsque cela a commencé à m'arriver, certaines de ces solutions n'ont pas résolu le problème et ce n'est pas le seul problème pour lequel j'ai commencé à faire l'expérience. 

Je voudrais proposer une autre solution (pour moi-même inclus). Migration vers Android Studio autant que possible de votre espace de travail et commencez à vous familiariser avec le nouvel IDE. Si vous développez pour une entreprise, essayez de la faire travailler pendant vos heures afin d’avoir le temps de les migrer, car certaines seront faciles et d’autres avec des composants NDK ne le seront probablement pas.

Mais, étant donné que Eclipse n'est plus pris en charge et que Google Studio est concentré sur Android Studio, il est préférable pour nous (seulement à mon avis bien sûr) de commencer à apprendre le nouvel environnement. C'est maintenant à un point assez stable qu'il dépasse le côté habituel du développement d'applications Android de la programmation via Eclipse.

0
Jay Snayder

Dans la vue Expressions, vous pouvez entrer n'importe quelle expression et Eclipse tentera de l'évaluer dans le contexte d'exécution actuel. Ce qui signifie que si votre expression n'est pas valide dans le contexte actuel (par exemple, vous essayez d'évaluer object.myMethod () et l'objet est null), vous obtiendrez l'erreur que vous avez affichée.

0
Alexis Dufrenoy

Je recommande d'utiliser ctrl + shift + i sur l'expression sélectionnée qui est inspect.

Une option supplémentaire consiste à ajouter une vue Display à votre environnement où vous pouvez taper vos propres expressions et les inspecter comme si elles étaient placées dans du code.

0
xwhyz

Vous pouvez voir toutes les valeurs de variables dans la fenêtre Variables. Les expressions ne montrent les valeurs que lorsqu'elles ont une portée, mais parfois elles ne se comportent pas comme nous le voudrions.

Je vous suggère donc d'utiliser "Variables" window pour afficher toutes les variables et leur valeur.

0
emphywork