Interface ProbeNode.Instrumentable

Enclosing class:
ProbeNode

public static interface ProbeNode.Instrumentable
Any Truffle node implementing this interface can be "instrumented" by installing a Probe that intercepts execution events at the node and routes them to any Instruments that have been attached to the Probe. Only one Probe may be installed at each node; subsequent calls return the one already installed.
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    Enables "instrumentation" of a Guest Language Truffle node, where the node is presumed to be part of a well-formed Truffle AST that is not being executed.
    void
    Enables a one-time, unchangeable "instrumentation" of a Guest Language Truffle node, where the node is presumed to be part of a well-formed Truffle AST that is not being executed.
  • Method Details

    • probe

      Probe probe()
      Enables "instrumentation" of a Guest Language Truffle node, where the node is presumed to be part of a well-formed Truffle AST that is not being executed. The AST may be modified as a side effect.

      This interface is not intended to be visible as part of the API for tools (instrumentation clients).

      Returns:
      a (possibly newly created) Probe associated with this node.
    • probeLite

      void probeLite(TruffleEventReceiver eventReceiver)
      Enables a one-time, unchangeable "instrumentation" of a Guest Language Truffle node, where the node is presumed to be part of a well-formed Truffle AST that is not being executed. The AST may be modified as a side-effect. Unlike probe(), once probeLite(TruffleEventReceiver) is called at a node, no additional probing can be added and no additional instrumentation can be attached.

      This interface is not intended to be visible as part of the API for tools (instrumentation clients).

      Parameters:
      eventReceiver - The TruffleEventReceiver for the single "instrument" being attached to this node.