Hallo,
ich suche gerade (wissenschaftliche Zwecke) eine Möglichkeit die Ausführung von Programmen "zu verfolgen" und somit zu analysieren. Die Ausführung started in einer Klasse mit einer main-Methode. Diese Methode erzeugt z.B. ein Objekt: Map map = new LinkedMap(); und fügt dann Elemente der map hinzu via put(). Alles sehr simpel.
Nun würde ich gerne in der Runtime gewisse "hooks" haben die mir erlauben Daten zu sammeln welche Methoden in der Ausführung tatsächlich aufgerufen werden. Die JVM hat solche "Api-hooks" nicht soweit ich weiss? Vielleicht gibt es ja neuere Entwicklungen von denen ich nichts weiss? Eventuell kann GraalVM das?
Eventuell gibt es ja einen Java Interpreter, der ebenfalls Code (vielleicht sogar ohne Kompilierung) ausführen kann und der solche "hooks" zur Analyse bereitstellt?
Ansonsten wäre ich dankbar für weitere Ideen wie ich wie beschrieben eine Ausführungsanalyse durchführen kann? Lieber wäre mir eine saubere Lösung, d.h. z.B. ein Interpreter, der mir erlaubt alle seine Aktionen während der Ausführung zu sammeln anstatt eine "hacky" Lösung wo ich source-code oder bytecode modifiziere.
ich suche gerade (wissenschaftliche Zwecke) eine Möglichkeit die Ausführung von Programmen "zu verfolgen" und somit zu analysieren. Die Ausführung started in einer Klasse mit einer main-Methode. Diese Methode erzeugt z.B. ein Objekt: Map map = new LinkedMap(); und fügt dann Elemente der map hinzu via put(). Alles sehr simpel.
Nun würde ich gerne in der Runtime gewisse "hooks" haben die mir erlauben Daten zu sammeln welche Methoden in der Ausführung tatsächlich aufgerufen werden. Die JVM hat solche "Api-hooks" nicht soweit ich weiss? Vielleicht gibt es ja neuere Entwicklungen von denen ich nichts weiss? Eventuell kann GraalVM das?
Eventuell gibt es ja einen Java Interpreter, der ebenfalls Code (vielleicht sogar ohne Kompilierung) ausführen kann und der solche "hooks" zur Analyse bereitstellt?
Ansonsten wäre ich dankbar für weitere Ideen wie ich wie beschrieben eine Ausführungsanalyse durchführen kann? Lieber wäre mir eine saubere Lösung, d.h. z.B. ein Interpreter, der mir erlaubt alle seine Aktionen während der Ausführung zu sammeln anstatt eine "hacky" Lösung wo ich source-code oder bytecode modifiziere.