Wie kann man eine Java-Anwendung ohne Zugriff auf den Quellcode debuggen?

Ich muss eine Java-Anwendung debuggen, für die ich keinen Quellcode habe. Es wird lokal auf einem Jetty-Server ausgeführt. Das Dekompilieren mit JD-GUI funktioniert einwandfrei. Das Anhängen von JDB über eine Socket-Verbindung oder einen gemeinsam genutzten Speicher funktioniert ebenfalls einwandfrei.

Wo ich versage, füge ich die Teile zusammen. Ich habe Eclipse hauptsächlich mit dem JD-Eclipse-Plugin und Remote-Debugging ausprobiert. Ich habe keine Möglichkeit gefunden, den Debugger erfolgreich an einen laufenden Prozess anzuhängen. Alles scheint davon auszugehen, dass ich zumindest Teile der Anwendung als Quellcode in einem Projekt zur Verfügung habe, aber nicht. Und es ist eine ziemlich große Anwendung (mehr als 200 MiB JAR-Dateien und mehr als 500 MiB andere Dinge), daher ist es keine Option, ein Projekt aus allen dekompilierten Klassen zu erstellen und zum Laufen zu bringen, es sei denn, es ist einfach zu automatisieren.

Was ich wirklich brauche, ist die Möglichkeit, einen Debugger an einen laufenden Prozess anzuhängen, den dekompilierten Code zu sehen und darin zu navigieren, Haltepunkte zu setzen und Variablen und Objekte zu untersuchen. Es spielt keine Rolle, ob der Code neu kompiliert werden konnte. Bedingte Haltepunkte und Ausdrucksauswertung wären nett zu haben.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage