2009-07-23 12 views
9

Ich kann Variablen in Eclipse beim Debuggen von Java-Remoteanwendung nicht überprüfen. Was könnte der Grund sein?Variablen auf Eclipse können nicht überprüft werden

EDITED: Ich bin nicht in der Lage, irgendwelche Variablen zu überprüfen. Die im Inspektor-Minifenster angezeigte Meldung lautet 'Variablenname kann nicht aufgelöst werden'. Ich kann den Inhalt sehen, wenn ich ihn lokal mit Testcode ausführe.

+0

Erzählen Sie uns mehr. Was passiert, wenn Sie versuchen, die Variable zu inspizieren? –

+0

Bitte sehen Sie den bearbeiteten Teil –

+0

Welche Version von Eclipse verwenden Sie? –

Antwort

1

Alle Variablen oder nur einige? Es könnte mehrere Gründe dafür geben:

  • Es gibt keine Debugging-Informationen für diese Klasse. Sie würden die Variablen nicht sehen, wenn Sie denselben Code lokal debuggen.

  • Vielleicht gibt es einen Fehler in Eclipse. Hast du die Fehlerkonsole überprüft?

  • Ich bin nicht sicher, ob die Version der VM einen Unterschied macht. Aber Sie sollten versuchen, die gleiche VM auf beiden Seiten zu verwenden, um sicherzustellen, dass.

+0

Wenn die Java-Anwendung Remote-Debugging-Funktionen verfügbar macht, muss eine Klasse keine * Serializable * -Schnittstelle implementieren. –

+0

Hey Aaron, Remote-Debugging funktioniert mit allen Klassen serialisierbar oder nicht. –

+0

Behoben. Gab es keine Möglichkeit, Java anzuweisen, die Debug-Daten in den Klassendateien zu vergessen? Ich überprüfe die Dokumente, konnte sie aber nicht finden. –

2

Überprüfen Sie, ob Sie mit der Remote-App verbunden sind.

Wenn Ihre Anwendung mehrere Threads hat, könnte es sein, dass kein Thread ausgewählt, in diesem Fall - den Faden wählen, dass Debugger Stopp in

Wenn Debugger nicht aufgehört hat -. Ein Breakpoint gesetzt.

8

Seien Sie absolut sicher, dass die auf dem Remote-Server bereitgestellten Klassen mit Debuginformationen kompiliert wurden.  

1

Es gibt zwei Ansichten, mit denen Sie Werte beim Debuggen in Eclipse sehen können. Zuerst ist die Ansicht Ausdrücke. In der Ansicht "Ausdrücke" können Sie Werte für Felder anzeigen, die Sie angeben möchten. Zweitens ist die Ansicht "Werte". In der Ansicht Werte können Sie die Werte für Felder in einer Methode, die Sie durchlaufen, sehen, wenn die Klasse mit Debug-Token kompiliert wurde, oder die Werte der übergebenen Argumente, wenn die Klasse nicht mit Debugging kompiliert wurde.

Wenn Sie etwas wie 'Variablenname kann nicht aufgelöst werden' kann es sein, dass Sie die Ausdrücke Ansicht, nicht die Werte Ansicht verwenden.

+2

'Werte' oder 'Variablen'? – KillBill

2

In meinem Fall kompilierte ich das Projekt über Maven mit debug = false für das Compiler-Plugin. Das war das Problem!

1

Ich vor kurzem das gleiche Problem festgestellt und überprüft, dass alle Klassen mit Debug-Informationen kompiliert wurden und sie waren.

Ich fand das Problem, dass die lokale Quelle etwas veraltet war. Die Quelle des Codes, den ich debugging, hatte sich zwischen den beiden Versionen nicht geändert, aber das Problem trat immer noch auf. Sobald ich von Subversion aktualisiert und lokal neu aufgebaut wurde, wurde das Problem gelöst.

+0

Ich habe die Quelle beim Debuggen geändert und gespeichert. Ab dem nächsten Mal konnte ich die Werte nicht einsehen. Durch das Zurücksetzen der Änderungen wurde das Problem behoben – manikanta

0

Es könnte viele mögliche Gründe geben. Sind Sie im "richtigen Kontext"? Wenn sich Ihr Debugger in einem Kontext oder Stack-Frame befindet und Sie versuchen, Variablen zu überprüfen, die sich nicht in diesem Bereich befinden, können Sie sie nicht überprüfen.

0

Ich hatte dieses Problem nach dem Wechsel zu Gebäude mit Maven.Um das Problem zu umgehen, habe ich das Tag zum compilerArguments-Tag in der pom.xml hinzugefügt. Finden Sie das Maven-Compiler-Plugin-Tag und ändern Sie es so, dass es etwa wie folgt aussieht, ist das neue Tag, das Sie hinzufügen möchten, das leere Tag !!:

 <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <compilerArguments> 
        <source>1.8</source> 
        <target>1.8</target> 
        <g></g> 
       </compilerArguments> 
      </configuration> 
     </plugin> 
Verwandte Themen