Frage

Ich habe mich gefragt, ob etwas (in Java-Welt) in der Lage existiert eine Momentaufnahme des JVM aktuellen Stand mit den folgenden Merkmalen zu übernehmen:

  • Haben Sie es, während eine Ausnahme ausgelöst wird.
  • Capture-lokale Variablen, Methode Argumente, etc.
  • Legen Sie es in einer praktischen Datei, die verwendet werden kann, zu extrahieren oder in einer IDE, die Situation in Ihrem Quellcode zu reproduzieren.

Die ersten beiden Funktionen erforderlich sind (dritte wäre genial). Und es muss für den produktiven Einsatz geeignet sein (so gibt es keine Möglichkeit, über Debugger).

Vor diesem fragen ich durch das WWW gesucht haben (so lange wie möglich) und ich fand einige Hinweise:

  • Cajoon Interceptor : Wie gesagt in Dzone Post , es ist ein passives JVM Mittel, das die drei Anforderungen erfüllen! Aber, es hat zwei Nachteile: Sie müssen dafür bezahlen und die Seite nicht erreichbar ist (vielleicht gibt es keine Chance, etwas zu bezahlen)
  • .
  • AVIcode Intercept Studio : Cajoon .NET-Äquivalent. Nur um einen Einblick darüber zu geben.
  • JavaFrame : Ok, es ist ein Tweet, aber es deutet auf einen verfügbaren SVN Repo die hat den Quellcode (unter MIT-Lizenz) ein JVM Mittels, das gut aussieht (ich werde versuchen, um es geben).

Also, vielleicht suche ich für eine nicht existierende Lösung? Es ist nicht dringend, aber ich hatte diese Idee zu einem Projekt und es wäre toll, um diesen „unknown“ (?) Weg zu erkunden und etwas Wirkliches bekommen.

Es scheint klar zu sein, dass es von JVMTI, Beispiel ).

Endlich würde ich den followin Absatz markiert von Wikipedias Exception Handling Artikeln :

  

In Runtime-Engine Umgebungen wie   Java oder .NET, gibt es Tools, die   heften sich an die Runtime-Engine und jeder   Zeit, dass eine Ausnahme von Interesse   auftritt, notieren sie das Debuggen   Informationen, die im Speicher existiert bei   die Zeit wurde die Ausnahme ausgelöst   (Aufrufstapel und Heap-Werte). Diese   Werkzeuge Automatische Ausnahme genannt   Handhabung oder Fehler Interception-Tools   und bieten ‚Ursachen‘ Informationen   für Ausnahmen.

Das ist die Idee. Ich hoffe, dass mir jemand einen kleinen Einblick geben kann oder vielleicht in der Zukunft, jemand von diesem bescheidenen Beitrag inspirieren:)

Danke!

War es hilfreich?

Lösung

Ich gebe einen Blick auf JavaFrame und es scheint einen guten Ausgangspunkt. Einfach installieren Apache Ant, tut ant im javaframe Verzeichnis und starten Sie die Testsuite (im Test-Verzeichnis) mit:

LD_LIBRARY_PATH=../build/native/ java -agentlib:frameintrospect -classpath ../build/classes/:. org.thobe.frame.Test

Es wird keinen lokalen Variable bekommen, aber es versucht. Also, wie gesagt, es kann ein Ausgangspunkt sein. Ich hoffe, dass über ihre Nutzung weiter zu erhalten, aber keine Zeit und keine Dokumentation (es gibt viele Projekte genannt JavaFrame) sind schlechte Umstände.

Vielleicht eines Tages kann es wieder geschehen. Wieder ja. Es war Cajoon, es sah vielversprechend aus und glänzend, aber ihre Webseite nach unten und es gibt keine Spur von herunterladbaren Glas zu versuchen.

Danke an alle!

PD .: Gerade als Referenz, einige Links fand ich während der Erforschung:

Andere Tipps

Sie möchten in die Arbeit suchen, die NetBeans in Bezug auf automatisierte Verwendung Protokollierung getan hat: http: // wiki. netbeans.org/UsageLoggingSpecification .

Wie für lokale Variablen Dumping aus, könnte ich mir vorstellen, dass man einfach einen Debugger, wie das verwenden könnte, die erwähnt bajafresh4life.

Vielleicht könnte es mit getan werden AspectJ ?

Nicht sicher, ob dies in einer Produktionsumgebung durchführbar ist, aber es ist der Allwissende Debugger:

  

Was passiert, wenn Ihr Debugger gehen könnte „in der Zeit rückwärts gehen?“ Wäre das erleichtert das Debuggen? Durch einfache alle Variablenzuweisungen der Aufnahme ist es möglich, im Wesentlichen, dies zu tun. Dies ist die grundlegende Idee für allwissend Debuggen. Das erstaunliche daran ist, dass signifikant große Programme können auf diese Weise getestet werden - Ant, JUnit, der Debugger selbst.

http://www.lambdacs.com/debugger/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top