Heim >Java >javaLernprogramm >Wie kann das Problem gelöst werden, dass Variablenwerte beim Debuggen des JDK-Quellcodes nicht angezeigt werden können?
Vor ein paar Tagen wollte ich mir den JDK-Quellcode im Debug-Modus ansehen, aber als ich in den Debug-Modus wechselte, stellte ich fest, dass ich die Variablenwerte in den Methoden überhaupt nicht sehen konnte. Warum? In der aktuellen Version des JDK werden die Debugging-Informationen nach der Kompilierung entfernt. Die Lösung besteht darin, diese Klassen mit Debugging-Informationen zu kompilieren und den Befehl zu verwenden: javac -g
Nachdem ich einige relevante Informationen überprüft habe, werde ich die Lösung unten einfügen
Erstellen Sie die Verzeichnisse jdk7_src und jdk_debug im Stammverzeichnis von d:.
Suchen Sie die Datei src.zip im Verzeichnis JDK_HOME und extrahieren Sie die darin enthaltenen Dateien in das Verzeichnis jdk7_src Verzeichnis Laden Sie andere Verzeichnisse außer java, javax, org herunter und löschen Sie sie im dekomprimierten Verzeichnis.
Legen Sie rt.jar unter JDK_HOMEjrelib in Ihr Arbeitsverzeichnis, also unter das Stammverzeichnis von d: (dies ist nur für Bequemlichkeit (keine Notwendigkeit, eine große Anzahl von Dateinamen in der Befehlszeile anzugeben).
Führen Sie den Befehl dir /B /S /X jdk7_src*.java > filelist.txt aus, um eine Liste der Java-Dateien zu erstellen, für die kompiliert werden muss javac-Befehlskompilierung Eingabequelldatei, dir-befehlsbezogene Parameterbeschreibung, /B: gibt keine zusätzlichen Dateiinformationen aus (keine Titelinformationen oder Zusammenfassung), /S: zeigt das angegebene Verzeichnis an und Alle Unterverzeichnisse Dateien in /X: werden als Kurznamen angezeigt, die aus Nicht-8.3-Dateinamen generiert werden. Das Format ist /N-Format, wobei der Kurzname vor dem Langnamen eingefügt wird. Wenn kein Kurzname vorhanden ist, wird stattdessen ein Leerzeichen angezeigt.
Ausführen javac -J-Xms16m -J-Xmx1024m -sourcepath d:jdk7_src -cp d:rt.jar -d d:jdk_debug -g @filelist.txt >> ; log.txt 2>&1 Die kompilierte Datei wird im Ordner jdk_debug abgelegt und das durch die Kompilierung generierte Protokoll wird in der Datei log.txt gespeichert. In der Protokolldatei werden viele Warnungen, aber keine Fehlermeldungen angezeigt.
Geben Sie das Verzeichnis jdk_debug ein, führen Sie den Befehl jar cf0 rt_debug.jar * aus und packen Sie die kompilierte Datei in rt_debug. GlasPackung.
Legen Sie das neu generierte JAR-Paket in JDK_HOMEjrelibendorsed ab (wenn kein Endorses-Ordner vorhanden ist, erstellen Sie ihn manuell).
Hinweis: JDK_HOME stellt den Installationspfad von JDK dar. Alle Befehle in diesem Artikel werden unter d: und seinen Unterverzeichnissen ausgeführt.
Um es einfacher zu machen, können Sie auch die Debug-Version von JDK7 rt_debug.jar, die ich unten bereitgestellt habe, in den Ordner endorsed legen.
Debug-JDK-Quelle kann Variable nicht beobachten, was sie ist --stackoverflow
Java Endorsed Standards Override Mechanism
Das obige ist der detaillierte Inhalt vonWie kann das Problem gelöst werden, dass Variablenwerte beim Debuggen des JDK-Quellcodes nicht angezeigt werden können?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!