nicht breakpoints in eclipse
Ich bin mit eclipse europa (3.5) auf windows vista home premium 64-bit-Version mit dem JDK 1.6.0_18 (32 BIT).
Normalerweise bin ich in der Lage, um die Haltepunkte genau richtig; Jedoch, für eine bestimmte Klasse, die NICHT Teil des Projekts (diese Klasse ist im inneren ein .JAR-Datei (.JAR-Datei ist Bestandteil des Projektes) ), ich habe zwar schonmal ein source-Verzeichnis zu diesem .JAR-Datei, ich bin nicht in der Lage, um einen Haltepunkt in dieser Klasse.
Wenn ich Doppelklick auf das breakpoint-Fenster(linke Grenze), ich merke, dass eine Klasse Haltepunkt gesetzt ist. Ich Frage mich, ob es KEINE debug-Informationen; Jedoch fanden, dass diese spezielle Klasse wurde zusammengestellt mit Hilfe von ant - /javac-task mit debug="true" und debuglevel=" - Zeilen,vars,Quelle". Ich lief sogar jad auf diese Klasse zu bestätigen, dass es in der Tat enthalten die debug-info.
So, warum ist eclipse hindert mich daran, platzieren Sie einen Haltepunkt ?
EDIT : Nur, damit jeder versteht, der Kontext ist dies eine webapp läuft unter tomcat 6.0. Ich bin ein remote-debugging der Anwendung von eclipse nach dem Start von tomcat außerhalb. Die Anwendung funktioniert ganz gut. Ich versuche zu verstehen, das Verhalten der oben genannten Klasse, die ich nicht tun, da eclipse wird nicht lassen Sie mich ein BP.
P. S : ich sah ein paar threads hier im Gespräch über die BPs nicht getroffen, aber in meinem Fall, ich bin nicht der BP!
P. P. S : ich habe versucht JDK 1.6.0_16 vor dem ausprobieren 1.6.0_18.
Vielen Dank für jegliche Hinweise.
- Hast du versucht, den Schritt in die Klasse von einer aufrufenden Klasse? Es Tat zeigen die angehängten source? Keine Lösung, aber kann helfen.
- josefx : Diese Klasse wurde aufgerufen, mit der Spiegelung, das dauert schon ein paar HOPs, bevor die eigentliche Methode getroffen wird, habe ich nicht den Schritt in die Methode.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, einen Blick in Ihre Konfiguration Java->debug->Schritt filtern
irgendwann seine aktiviert und Sie können nicht aufhören, innen ein gefiltertes Paket
Es klingt wie Eclipse nicht finden können, die jar-Datei im classpath, obwohl Sie sagten, dass die jar-Datei ist Bestandteil des Projekts. Was passiert, wenn Sie die Anwendung der Regel? Bekommen Sie einen ClassDefNotFoundException oder etwas ähnliches?
Wenn Sie das Kontrollkästchen Registerkarten auf die Run/Debug-Konfiguration sollten Sie in der Lage, um zu sehen, welche Wege und jar-Dateien im Klassenpfad zur Laufzeit. Sie können auch hinzufügen jar-Dateien, die nicht erforderlich sind, um die Anwendung zu erstellen, sind aber erforderlich, um es auszuführen.
Wenn Sie versuchen, auf Haltepunkte hinzufügen für .jsp-Seite es stellte sich heraus, die Seite wurde nicht geöffnet mit einer JSP-editor, der verhindert das setzen von breakpoints.
Sagen Sie "Quellverzeichnis". Sind Sie sicher, es ist die gleiche version, die verwendet wurde, kompilieren Sie das Glas? Wenn Sie befestigen, ein anderes source-code-version, die Zeilennummern können nicht übereinstimmen, und Sie Ihre Pause nicht traf.
Ich m bewusst einen Fehler in eclipse, wo Haltepunkte funktionieren nicht mit einer bestimmten version des jdk 1.6.x
Für mehr info schauen hier
Verwenden ein plugin namens Jadclipse zu dekompilieren, das Glas in der runtime Ort, der Haltepunkt an der Stelle, wo die JAR-Methode aufgerufen wird, dann drücken Sie F6, und Sie sollten in der Lage sein zu gehen in Ihrem GLAS-Methode.
Nur eine einfache Aktualisierung der .jar-Datei hat den trick für mich.
War ich in der Lage, alle Haltepunkte in allen anderen class-Dateien mit dem gleichen Paket mit einer Ausnahme. Was ich beobachtet habe ist, dass, wenn ich öffnete diese Klasse-Datei in editor und ausgewählten "Link with Editor" von eclipse nicht nehmen, mich auf diese Klasse-Datei selbst, sondern nur das Paket in dieser Klasse Datei.
Nach der Regenerierung,"Link with Editor" gearbeitet und ich war in der Lage, den Haltepunkt.
Wenn jemand erklären könnte dieses Verhalten,wird es hilfreich sein.
Schritt 1: Umschalten/Haltepunkt Aktivieren
Legen Sie den Haltepunkt in der Codezeile oder point-of-Eintrag-Methode aus, wo Sie möchten, um das Debuggen zu starten den code. Der rechten Maustaste auf den linken Rand des Editors für die nächste Zeile von code und ein Kontext-Menü öffnet sich. Wählen Sie "Haltepunkt Umschalten" im Kontextmenü
Schritt 2: Konfigurieren der Haltepunkt zum anhalten der Ausführung
Um das Debuggen zu starten, die Ausführung sollte halt am Haltepunkt angegeben. Dazu klicken Sie auf Haltepunkt-Eigenschaften " die folgenden Schritte aus:
Dies Stoppt die Ausführung, wenn das Programm zuvor auf den Haltepunkt.
Schritt 3: Wechseln Sie in den debug-Perspektive
In Eclipse, wählen Sie Fenster –>Öffnen Sie Sicht –> Debug
Schritt 4: im debug-Modus Ausgeführt
Führen Sie nun das Programm im debug-Modus. Wählen Sie " Ausführen –> Debug
Nun startet das Programm läuft im debug-Modus und sehen Sie den Zustand des Threads als "aktiv"
Wenn das Programm zuvor auf den Haltepunkt der Zustand des Threads wechselt von "running" auf "angehalten"
Schritt 5: Debuggen des Codes mit den Ausdrücken \Watch-Variablen \ Inspizieren
Nun Stoppt der code am Haltepunkt. Sie könnten die Variablen beobachten /Ausdruck, um zu überwachen den aktuellen Wert der debug-variable.
Angenommen, Sie legen Sie den Haltepunkt in der variable namens "counter", und das Programm gestoppt Zähler-variable
Fügen Sie den Ausdruck mit den Namen der Variablen "counter", die Ihnen erlaubt zu überwachen, der Wert der Variablen, wie Sie das Programm auszuführen
Sie könnten auch mit der rechten klicken Sie auf die counter-variable, und wählen Sie "Untersuchen" aus dem Kontextmenü
Wenn es ist eine Methode, dann wählen Sie den Namen der Methode, und klicken Sie auf “Step Into Selection“. Dies ermöglicht es Ihnen zu überwachen, oder Debuggen Sie die Methode der Ausführung Zeile für Zeile.
Schritt 6: Verwenden Sie F6, um den Schritt in die Methode
Zu "step-in" der nächsten ausführbaren code-Zeile in der aktuellen Methode, drücken Sie die "F6-Taste". Dies übergibt die Programmsteuerung von der aktuellen Zeile bis zu der nächsten ausführbaren Zeile code.