Warum schlägt die Ausdrucksansicht von Eclipse in einigen Klassen fehl?

9

Für ein Forschungsprojekt entwickle ich OpenJDK-Quellen mit Eclipse. Zu Debugging-Zwecken sind die Ansichten "Expressions" und "Display" des integrierten Debuggers sehr hilfreich. Beim Durchlaufen des Codes des Compiler-Tools javac schlägt die Ausdruckansicht in einigen Klassen fehl. Dann erhalten selbst die einfachsten Ausdrücke ein <error(s)_during_the_evaluation> in ihrer Wertespalte. Die detaillierte Fehlermeldung lautet dann:

%Vor%

Ich bin mir ziemlich sicher, dass ich gültige Ausdrücke eingegeben habe, da ein einfacher Wechsel zur aufrufenden Methode (ein Stapelrahmen höher) die Ansicht funktioniert.

Ich habe zwei Screenshots hochgeladen zwei machen das Problem klarer:

Nicht funktionierende Klasse JavacParser :

Arbeitsklasse EndPosParser :

Hat jemand jemals ein ähnliches Problem erlebt oder weiß, was der Grund ist oder wie man es beheben kann? Wenn ich zwischen den zwei gezeigten Ansichten wechsle, mache ich nichts anderes, als einen Stapelrahmen höher zu gehen. Es wird erwartet, dass beide Ausdrücke in beiden Fällen ausgewertet werden. Soweit ich es beurteilen kann, tritt das gezeigte Fehlerverhalten nur in der Klasse JavacParser auf.

Danke!

    
sebastian_oe 25.06.2013, 18:26
quelle

1 Antwort

0

Soweit ich weiß, werden Ausdrücke im Kontext des aktuellen (obersten) Stackframes ausgewertet.

Es scheint so, als ob Ihr erster Screenshot erstellt wurde, als ein Objekt ( EndPosParser ) erstellt wurde. Da Ihr Objekt noch nicht existiert, kann this nicht ausgewertet werden. Der Verweis auf this kann erst ausgewertet werden, wenn die Super-Call-Kette Object erreicht hat.

Ich bin mir nicht sicher, warum 1+2 nicht ausgewertet werden kann. Meine beste Schätzung wäre: Eclipse erkennt Konstruktoren als nicht statische Methode und versucht, 1+2 in einem nicht statischen Kontext auszuwerten. Aber das scheitert erneut, weil this noch nicht existiert.

Edit: Das ist eine verdammt alte Frage, die ich gerade versucht habe zu beantworten ...

    
samjaf 11.04.2017 06:24
quelle

Tags und Links