public abstract class ExecutionEventNode extends Node
ExecutionEventNodeFactory for a specific locations of a guest
language program to listen to instrumentation events. In addition to
listeners event nodes allow to store state for a particular
program location.Node.Child, Node.Children| Modifier | Constructor and Description |
|---|---|
protected |
ExecutionEventNode() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
onDispose(VirtualFrame frame)
Invoked when an event node is removed from the AST.
|
protected void |
onEnter(VirtualFrame frame)
Invoked immediately before the
instrumented node
is executed. |
protected void |
onReturnExceptional(VirtualFrame frame,
Throwable exception)
Invoked immediately after an
instrumented node did
not successfully execute. |
protected void |
onReturnValue(VirtualFrame frame,
Object result)
Invoked immediately after an
instrumented node is
successfully executed. |
accept, adoptChildren, atomic, atomic, copy, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, getSourceSection, insert, insert, isSafelyReplaceableBy, isTaggedWith, onReplace, replace, replace, toStringprotected void onEnter(VirtualFrame frame)
instrumented node
is executed. The order in which multiple event listeners are notified matches the order they
are attached
.frame - the current frame used in the instrumented nodeprotected void onReturnValue(VirtualFrame frame, Object result)
instrumented node is
successfully executed. The order in which multiple event listeners are notified matches the
order they are
attached.frame - the frame that was used for executing instrumented nodeprotected void onReturnExceptional(VirtualFrame frame, Throwable exception)
instrumented node did
not successfully execute. The order in which multiple event listeners are notified matches
the order they are
attached.frame - the frame that was used for executing instrumented nodeprotected void onDispose(VirtualFrame frame)
ExecutionEventNode.onDispose(VirtualFrame) is invoked the next time the particular part of the AST is
executed. If the instrumented node is not invoked
anymore after it was disposed then ExecutionEventNode.onDispose(VirtualFrame) might or might not be
executed.frame - the frame that was used for executing instrumented node