Package com.oracle.truffle.api.instrument
package com.oracle.truffle.api.instrument
-
ClassDescriptionAccess to AST-based debugging support, which is could be language implementation specific in the details chosen to be presented.Enables instrumentation by attaching Probes to some nodes in a (newly created, not yet executed) AST.A dynamically added/removed binding between a
Probe
, which provides notification of execution events taking place at aNode
in a Guest Language (GL) Truffle AST, and a receiver, which consumes notifications on behalf of an external tool.A marker interface for Truffle nodes that support Instrumentation and are should not be part of any Guest Language execution semantics.Controls breaking out of an execution context, such as a shell or eval.A binding between a particular location in the Truffle AST representation of a running Guest Language (GL) program (i.e.An observer of events related toProbe
s: creating and tagging.Implementation interfaces and classes for attachingProbe
s toProbeNode.WrapperNode
s.Any Truffle node implementing this interface can be "instrumented" by installing aProbe
that intercepts execution events at the node and routes them to anyInstrument
s that have been attached to theProbe
.A node that can be inserted into a Truffle AST, and which enables instrumentation at a particular Guest Language (GL) node.Controls breaking out of all executions and ending Truffle execution.A somewhat language-agnostic set of user-sensible syntactic categories, suitable for conventional imperative languages, and is being developed incrementally.Program element "tags", presumed to be singletons (best implemented as enums) that define user-visible behavior for debugging and other simple tools.Information about a guest language program element in a Truffle AST that can be marked as belonging to 0 or more tags.A trap that can be set to interrupt execution at probed nodes carrying a specific tag.A receiver of Truffle AST runtime execution events that can collect information and possibly intervene on behalf of an external tool.Visualization services for the benefit of instrumentation-based tools, possibly specialized for each guest language and possibly specialized for relevant information from the underlying Truffle implementation.