Ich habe mich gefragt, ob etwas existiert (in der Java-Welt), das in der Lage ist, einen Schnappschuss des aktuellen JVM-Zustands mit den folgenden Eigenschaften zu erstellen:
Die zwei ersten Features sind erforderlich (das dritte wäre toll). Und es muss für den produktiven Einsatz geeignet sein (Debugger haben also keine Chance).
Bevor ich das gefragt habe, habe ich das WWW (so lange wie möglich) durchsucht und einige Hinweise gefunden:
Vielleicht suche ich nach einer nicht existenten Lösung? Es ist nicht dringend, aber ich hatte diese Idee für ein Projekt und es wäre großartig, diesen "unbekannten" (?) Pfad zu erkunden und etwas wirklich zu bekommen.
Es scheint klar zu sein, dass es ein JVM-Agent wäre (Ausnahmeereignis von JVMTI, für Beispiel ).
Endlich möchte ich den folgenden Abschnitt aus dem Wikipedia-Artikel zur Ausnahmebehandlung hervorheben:
In Laufzeit-Engine-Umgebungen wie z Java oder .NET, gibt es Tools, die an die Laufzeit-Engine anfügen und alle Zeit, die eine Ausnahme von Interesse ist tritt auf, sie protokollieren das Debugging Informationen, die im Speicher vorhanden waren die Zeit, zu der die Ausnahme ausgelöst wurde (Aufruf von Stack- und Heap-Werten) Diese Werkzeuge werden als automatisierte Ausnahme bezeichnet Tools zum Behandeln oder Error Interception und Informationen zur "Ursache" bereitstellen für Ausnahmen.
Das ist die Idee. Ich hoffe, jemand kann mir einen Einblick geben oder vielleicht wird sich jemand in Zukunft von diesem bescheidenen Beitrag inspirieren lassen:)
Danke!
Ich schaue JavaFrame an und es scheint ein guter Ausgangspunkt zu sein. Installieren Sie einfach Apache Ant, führen Sie ant
im javaframe-Verzeichnis aus und starten Sie die Testsuite (innerhalb des Testverzeichnisses) mit:
Es wird keine lokale Variable erhalten, aber es wird versucht. Also, wie gesagt, es kann ein Ausgangspunkt sein. Ich hoffe, dass ich mehr über seine Verwendung erfahren kann, aber keine Zeit und keine Dokumentation (es gibt viele Projekte mit dem Namen JavaFrame) sind schlechte Umstände.
Vielleicht kann es eines Tages wieder getan werden. Wieder ja. Es gab Cajoon, es sah vielversprechend und glänzend aus, aber seine Website ist nicht verfügbar und es gibt keine Spur von einem herunterladbaren Glas, das man ausprobieren kann.
Danke an alle!
PD .: Nur als Referenz, einige Links, die ich bei der Recherche gefunden habe:
Vielleicht möchten Sie sich die Arbeit ansehen, die NetBeans in Bezug auf die automatische Nutzungsprotokollierung getan hat: Ссылка .
Was das Auslagern lokaler Variablen betrifft, würde ich mir vorstellen, dass Sie einfach einen Debugger verwenden könnten, wie den, den bajafresh4life erwähnt.
Nicht sicher, ob dies in einer Produktionsumgebung möglich ist, aber es gibt den Omniscient-Debugger:
Was wäre, wenn Ihr Debugger "in die Vergangenheit gehen könnte"? Würde das das Debuggen erleichtern? Durch einfaches Aufzeichnen aller Variablenzuordnungen ist es möglich, dies im Wesentlichen zu tun. Dies ist die grundlegende Idee für das allwissende Debugging. Der erstaunliche Teil ist, dass auf diese Weise signifikant große Programme debuggt werden können - Ant, JUnit, der Debugger selbst.
Tags und Links java exception-handling exception jvm agent