wake-up-neo.com

Warum zeigt Eclipse keine lokalen Variablenwerte an, wenn ich eine Klassendatei vom JDK aus debugge?

Ich möchte .class-Dateien debuggen. Zum Beispiel einige aus dem JDK. Ich habe die Quellen heruntergeladen und angehängt.

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

Dann tippe ich F6 und gehe zur nächsten Zeile. Danach versuche ich, den Wert von arrayOfString zu beobachten, sehe jedoch Folgendes:

Ausdrucksansicht:

Ist das normal? Gibt es eine Möglichkeit zum Debuggen?

Update 1:

enter image description here


Update 2:

enter image description here

Update 3:

enter image description here

17
gstackoverflow

Das Problem ist, dass die Quell-/Klassendateien aus dem JDK ohne Debug-Informationen kompiliert werden und Eclipse daher diese Variablen nicht überprüfen kann. Siehe diese Antwort für weitere Informationen.

Um Ihr Problem zu lösen, benötigen Sie ein anderes rt.jar oder kompilieren Sie es selbst

17
Absurd-Mind

Als mir dies geschah, wurde es durch einige dieser Lösungen nicht gelöst und es war nicht das einzige Problem, mit dem ich anfing, mit der Erfahrung zu beginnen. 

Ich möchte eine andere Lösung vorschlagen (für mich eingeschlossen). Migrieren Sie so viel wie möglich Ihres Arbeitsbereichs auf Android Studio und machen Sie sich mit der neuen IDE vertraut. Wenn Sie sich für ein Unternehmen entwickeln, versuchen Sie, es in Ihre Arbeitsstunden zu bringen, um Zeit für die Migration zu haben, da einige davon einfach sein werden und einige mit NDK-Komponenten wahrscheinlich nicht.

Aber da Eclipse nicht mehr unterstützt wird und der Fokus auf Android Studio von Google liegt, ist es für uns am besten (nur meiner Meinung nach), die neue Umgebung zu lernen. Es ist jetzt an einem ziemlich stabilen Punkt, dass es die übliche Android-Anwendungsentwicklungsseite der Programmierung über Eclipse übertrifft.

0
Jay Snayder

In der Ausdrucksansicht können Sie einen beliebigen Ausdruck eingeben und Eclipse versucht, ihn im aktuellen Ausführungskontext auszuwerten. Das bedeutet, wenn Ihr Ausdruck im aktuellen Kontext nicht gültig ist (Sie versuchen beispielsweise object.myMethod () auszuwerten und das Objekt den Wert null hat), erhalten Sie den angezeigten Fehler.

0
Alexis Dufrenoy

Ich empfehle die Verwendung von ctrl + shift + i für den ausgewählten Ausdruck, der inspect ist.

Eine weitere Option ist das Hinzufügen einer Display-Ansicht zu Ihrer Umgebung, in der Sie Ihre eigenen Ausdrücke eingeben und diese so untersuchen können, als wären sie im Code.

0
xwhyz

Sie können alle Variablenwerte im Variablenfenster sehen. Ausdrücke zeigen nur Werte an, wenn sie Gültigkeitsbereiche haben, aber manchmal verhalten sie sich nicht so, wie wir es wollen.

Mein Vorschlag ist also, Sie sollten "Variables" window verwenden, um alle Variablen und ihren Wert anzuzeigen.

0
emphywork