


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.
Referenzen
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



C++-Multithread-Debugging kann GDB verwenden: 1. Debugging-Informationskompilierung aktivieren; Tatsächlicher Fall-Debugging-Deadlock: 1. Verwenden Sie threadapplyallbt, um den Stack zu drucken. 3. Führen Sie einen Einzelschritt für den Haupt-Thread aus.

Wie verwende ich LeakSanitizer zum Debuggen von C++-Speicherlecks? Installieren Sie LeakSanitizer. Aktivieren Sie LeakSanitizer über das Kompilierungsflag. Führen Sie die Anwendung aus und analysieren Sie den LeakSanitizer-Bericht. Identifizieren Sie Speicherzuordnungstypen und Zuweisungsorte. Beheben Sie Speicherlecks und stellen Sie sicher, dass der gesamte dynamisch zugewiesene Speicher freigegeben wird.

In diesem Artikel werden Verknüpfungen für das Debuggen und Analysieren von Go-Funktionen vorgestellt, einschließlich des integrierten Debuggers dlv, der zum Anhalten der Ausführung, zum Überprüfen von Variablen und zum Festlegen von Haltepunkten verwendet wird. Protokollierung: Verwenden Sie das Protokollpaket, um Nachrichten aufzuzeichnen und sie während des Debuggens anzuzeigen. Das Leistungsanalysetool pprof generiert Anrufdiagramme und analysiert die Leistung und verwendet gotoolpprof zur Datenanalyse. Praktischer Fall: Analysieren Sie Speicherlecks über pprof und generieren Sie ein Aufrufdiagramm, um die Funktionen anzuzeigen, die Lecks verursachen.

Effizientes Debuggen von Lambda-Ausdrücken: IntelliJ IDEA Debugger: Setzen Sie Haltepunkte für Variablendeklarationen oder Methoden, überprüfen Sie interne Variablen und den Status und sehen Sie sich die tatsächliche Implementierungsklasse an. Java9+JVMTI: Stellen Sie eine Verbindung zur Laufzeit-JVM her, um Bezeichner abzurufen, Bytecode zu überprüfen, Haltepunkte festzulegen und Variablen und Status während der Ausführung zu überwachen.

Parallelitätstests und Debugging Parallelitätstests und Debugging in der gleichzeitigen Java-Programmierung sind von entscheidender Bedeutung und die folgenden Techniken stehen zur Verfügung: Parallelitätstests: Unit-Tests: Isolieren und testen Sie eine einzelne gleichzeitige Aufgabe. Integrationstests: Testen der Interaktion zwischen mehreren gleichzeitigen Aufgaben. Lasttests: Bewerten Sie die Leistung und Skalierbarkeit einer Anwendung unter hoher Last. Parallelitäts-Debugging: Haltepunkte: Thread-Ausführung anhalten und Variablen überprüfen oder Code ausführen. Protokollierung: Thread-Ereignisse und -Status aufzeichnen. Stack-Trace: Identifizieren Sie die Quelle der Ausnahme. Visualisierungstools: Überwachen Sie die Thread-Aktivität und die Ressourcennutzung.

Zu den Tools zum Debuggen von asynchronem PHP-Code gehören: Psalm: ein statisches Analysetool, das potenzielle Fehler findet. ParallelLint: Ein Tool, das asynchronen Code prüft und Empfehlungen gibt. Xdebug: Eine Erweiterung zum Debuggen von PHP-Anwendungen durch Aktivieren einer Sitzung und schrittweises Durchgehen des Codes. Weitere Tipps umfassen die Verwendung von Protokollierung, Assertionen, die lokale Ausführung von Code und das Schreiben von Komponententests.

Zum Debuggen rekursiver Funktionen stehen die folgenden Techniken zur Verfügung: Überprüfen Sie den Stack-Trace. Legen Sie Debug-Punkte fest. Überprüfen Sie, ob der Basisfall korrekt implementiert ist. Zählen Sie die Anzahl der rekursiven Aufrufe. Visualisieren Sie den rekursiven Stack

Zu den häufigsten PHP-Debugging-Fehlern gehören: Syntaxfehler: Überprüfen Sie die Codesyntax, um sicherzustellen, dass keine Fehler vorliegen. Undefinierte Variable: Bevor Sie eine Variable verwenden, stellen Sie sicher, dass sie initialisiert und ihr ein Wert zugewiesen ist. Fehlende Semikolons: Fügen Sie allen Codeblöcken Semikolons hinzu. Funktion ist undefiniert: Überprüfen Sie, ob der Funktionsname richtig geschrieben ist und stellen Sie sicher, dass die richtige Datei oder PHP-Erweiterung geladen ist.
