A request that guest language program execution be suspended at specified locations on behalf of a debugging client session.
Represents debugging related state of a
Set of debugger-specific tags.
Representation of guest language scope at the current suspension point.
Represents a frame in the guest language stack.
Represents a value accessed using the debugger API.
A filter to skip certain suspension locations.
Debugger.find(com.oracle.truffle.api.vm.PolyglotEngine)instance or from a Truffle guest language with
Debugger.find(com.oracle.truffle.api.TruffleLanguage.Env). Next a debugger session needs to be started with
callbackthat will be invoked whenever the execution is suspended. The debugger client can either
installa breakpoint or
suspendthe current or next execution. Whenever the execution is suspended and the
callbackis invoked the client can decide step into, step out or step over the next statements. For a usage example please refer to
There is also a list of FAQs that may provide useful hints when writing your own Truffle debugger frontend.
debuggingis language-agnostic. A
language implementationenables debugging by supplying extra information in every AST that configures debugger behavior for code written in that particular language.
This extra information is expressed using so called tags. Tags can be applied to AST nodes by
Node.isTaggedWith(Class) method. The
debugger requires the guest language to implement statement and call tags from the set of
standard Truffle tags. Please refer to
StandardTags on how to implement them.