Handhabung Ich habe mich gefragt, ob es etwas gibt (in Java-Welt) in der Lage eine Momentaufnahme des JVM aktuellen Stand mit den folgenden Funktionen zu nutzen:Automatisiertes Exception
- es tun, während eine Ausnahme ausgelöst wird.
- Erfassen Sie lokale Variablen, Argumente der Methode, etc.
- Legen Sie es in eine handliche Datei, die verwendet werden kann, um in einer IDE die Situation in Ihrem Quellcode zu extrahieren oder zu reproduzieren.
Die zwei ersten Funktionen sind erforderlich (dritte wäre super). Und es muss für den produktiven Einsatz geeignet sein (Debugger haben also keine Chance).
Vor diesem bat ich durch das WWW gesucht haben (so lange wie möglich) und ich fand einige Hinweise:
- Cajoon Interceptor: Wie in Dzone post heißt, 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 ist leer (vielleicht gibt es keine Chance, etwas zu bezahlen).
- AviCode Intercept Studio: Cajoon's .NET-Äquivalent. Nur um einen Einblick zu geben.
- JavaFrame: Ok, es ist ein Tweet, aber es zeigt auf einen verfügbaren SVN Repo, die den Quellcode (unter MIT-Lizenz) eines JVM-Agenten haben, der gut aussieht (ich werde es versuchen).
Also, 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" (?) Weg zu erkunden und etwas wirklich zu bekommen.
Es scheint klar zu sein, dass es sich um einen JVM-Agenten handeln würde (Ausnahmeereignis von JVMTI, für example).
Endlich habe ich den followin Absatz von Wikipedia's Exception Handling article hervorheben möchte:
In Runtime-Engine Umgebungen wie Java oder .NET, gibt es Tools, die, dass ein auf die Laufzeitmaschine und jede Zeit befestigen Ausnahme von Interesse auftritt, sie notieren Debugging Informationen, die im Speicher um die Zeit, die die Ausnahme ausgelöst wurde (Aufruf Stapel und Heap-Werte) vorhanden waren. Diese Tools heißen Automated Exception Handling oder Error Interception Tools und bieten 'root-cause' Informationen für Ausnahmen.
Das ist die Idee. Ich hoffe, jemand kann mir einen Einblick geben oder vielleicht in der Zukunft jemand von diesem bescheidenen Beitrag inspiriert werden :)
Vielen Dank!
Ich bin neugierig zu wissen, wenn Sie andere Lösungen gefunden haben. – dsatish