annotate truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/package-info.java @ 22548:6b76a24fffbd default tip

Use all variables: a, b, u,v and x, y
author Jaroslav Tulach <jaroslav.tulach@oracle.com>
date Thu, 14 Jan 2016 14:20:57 +0100
parents bbe2598ae2bc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21972
ff6f34159b8a Providing package-info for most of API packages. Feel free to provide your package-info.java for anything that has API in its name.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
1 /*
22004
11e0412c5b0e Make headers valid for checkstyle again.
Christian Humer <christian.humer@gmail.com>
parents: 22003
diff changeset
2 * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
11e0412c5b0e Make headers valid for checkstyle again.
Christian Humer <christian.humer@gmail.com>
parents: 22003
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
21972
ff6f34159b8a Providing package-info for most of API packages. Feel free to provide your package-info.java for anything that has API in its name.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
4 *
22004
11e0412c5b0e Make headers valid for checkstyle again.
Christian Humer <christian.humer@gmail.com>
parents: 22003
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
11e0412c5b0e Make headers valid for checkstyle again.
Christian Humer <christian.humer@gmail.com>
parents: 22003
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
11e0412c5b0e Make headers valid for checkstyle again.
Christian Humer <christian.humer@gmail.com>
parents: 22003
diff changeset
7 * published by the Free Software Foundation. Oracle designates this
11e0412c5b0e Make headers valid for checkstyle again.
Christian Humer <christian.humer@gmail.com>
parents: 22003
diff changeset
8 * particular file as subject to the "Classpath" exception as provided
11e0412c5b0e Make headers valid for checkstyle again.
Christian Humer <christian.humer@gmail.com>
parents: 22003
diff changeset
9 * by Oracle in the LICENSE file that accompanied this code.
21972
ff6f34159b8a Providing package-info for most of API packages. Feel free to provide your package-info.java for anything that has API in its name.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
10 *
22004
11e0412c5b0e Make headers valid for checkstyle again.
Christian Humer <christian.humer@gmail.com>
parents: 22003
diff changeset
11 * This code is distributed in the hope that it will be useful, but WITHOUT
11e0412c5b0e Make headers valid for checkstyle again.
Christian Humer <christian.humer@gmail.com>
parents: 22003
diff changeset
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11e0412c5b0e Make headers valid for checkstyle again.
Christian Humer <christian.humer@gmail.com>
parents: 22003
diff changeset
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
11e0412c5b0e Make headers valid for checkstyle again.
Christian Humer <christian.humer@gmail.com>
parents: 22003
diff changeset
14 * version 2 for more details (a copy is included in the LICENSE file that
21972
ff6f34159b8a Providing package-info for most of API packages. Feel free to provide your package-info.java for anything that has API in its name.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
15 * accompanied this code).
ff6f34159b8a Providing package-info for most of API packages. Feel free to provide your package-info.java for anything that has API in its name.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
16 *
22004
11e0412c5b0e Make headers valid for checkstyle again.
Christian Humer <christian.humer@gmail.com>
parents: 22003
diff changeset
17 * You should have received a copy of the GNU General Public License version
11e0412c5b0e Make headers valid for checkstyle again.
Christian Humer <christian.humer@gmail.com>
parents: 22003
diff changeset
18 * 2 along with this work; if not, write to the Free Software Foundation,
11e0412c5b0e Make headers valid for checkstyle again.
Christian Humer <christian.humer@gmail.com>
parents: 22003
diff changeset
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
21972
ff6f34159b8a Providing package-info for most of API packages. Feel free to provide your package-info.java for anything that has API in its name.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
20 *
22004
11e0412c5b0e Make headers valid for checkstyle again.
Christian Humer <christian.humer@gmail.com>
parents: 22003
diff changeset
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
11e0412c5b0e Make headers valid for checkstyle again.
Christian Humer <christian.humer@gmail.com>
parents: 22003
diff changeset
22 * or visit www.oracle.com if you need additional information or have any
11e0412c5b0e Make headers valid for checkstyle again.
Christian Humer <christian.humer@gmail.com>
parents: 22003
diff changeset
23 * questions.
21972
ff6f34159b8a Providing package-info for most of API packages. Feel free to provide your package-info.java for anything that has API in its name.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
24 */
ff6f34159b8a Providing package-info for most of API packages. Feel free to provide your package-info.java for anything that has API in its name.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
25
22441
bbe2598ae2bc New version of the instrumentation API with similar concepts, but better performance characteristics needs to be developed.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 22259
diff changeset
26 /*
bbe2598ae2bc New version of the instrumentation API with similar concepts, but better performance characteristics needs to be developed.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 22259
diff changeset
27 @ApiInfo(
bbe2598ae2bc New version of the instrumentation API with similar concepts, but better performance characteristics needs to be developed.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 22259
diff changeset
28 group="Obsolete soon"
bbe2598ae2bc New version of the instrumentation API with similar concepts, but better performance characteristics needs to be developed.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 22259
diff changeset
29 )
bbe2598ae2bc New version of the instrumentation API with similar concepts, but better performance characteristics needs to be developed.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 22259
diff changeset
30 */
bbe2598ae2bc New version of the instrumentation API with similar concepts, but better performance characteristics needs to be developed.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 22259
diff changeset
31
21972
ff6f34159b8a Providing package-info for most of API packages. Feel free to provide your package-info.java for anything that has API in its name.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
32 /**
22259
1348cc2e084e Truffle/Instrumentation: javadoc
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22256
diff changeset
33 * <h4>Truffle {@linkplain com.oracle.truffle.api.instrument.Instrumenter Instrumentation}: access to execution events for Debuggers and other tools.</h4>
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
34 * <p>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
35 * This framework permits client
22248
6d328e688339 Truffle/Instrumentation: Javadoc cleanup
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22247
diff changeset
36 * {@linkplain com.oracle.truffle.api.instrument.Instrumenter.Tool tools},
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
37 * either builtin or third-party, to observe with <em>very low overhead</em> the execution of a
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
38 * {@linkplain com.oracle.truffle.api.TruffleLanguage Truffle Language} program at the level of
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
39 * <em>AST execution events</em>:
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
40 * <ul>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
41 * <li>a Truffle
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
42 * {@linkplain com.oracle.truffle.api.nodes.Node Node} is about to be executed, or</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
43 * <li>a Truffle
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
44 * {@linkplain com.oracle.truffle.api.nodes.Node Node} execution has just completed.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
45 * </ul>
22248
6d328e688339 Truffle/Instrumentation: Javadoc cleanup
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22247
diff changeset
46 * The framework supports many kinds of tools, for example simple collectors of data such as the
6d328e688339 Truffle/Instrumentation: Javadoc cleanup
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22247
diff changeset
47 * CoverageTracker.
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
48 * It also supports Truffle's built-in
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
49 * {@linkplain com.oracle.truffle.api.debug.Debugger debugging services}, as well as utilities
22248
6d328e688339 Truffle/Instrumentation: Javadoc cleanup
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22247
diff changeset
50 * that maintain {@linkplain com.oracle.truffle.api.debug.LineToProbesMap maps of source code locations}
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
51 * for other tools such as {@linkplain com.oracle.truffle.api.debug.Debugger debugging}.
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
52 *
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
53 * <h4>Instrumentation Services</h4>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
54 * <p>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
55 * API access to instrumentation services is provided by the
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
56 * {@linkplain com.oracle.truffle.api.instrument.Instrumenter Instrumenter} that is part of
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
57 * the Truffle execution environment. These services fall into several categories:
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
58 *
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
59 * <ul>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
60 *
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
61 * <li><strong>AST Markup: probing</strong>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
62 * <ul>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
63 * <li>Execution events can only be observed at AST locations that have been
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
64 * {@linkplain com.oracle.truffle.api.instrument.Instrumenter#probe(com.oracle.truffle.api.nodes.Node) probed},
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
65 * which results in the creation of a
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
66 * {@linkplain com.oracle.truffle.api.instrument.Probe Probe} that is permanently associated with a
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
67 * particular segment of source code, e.g. a "statement", that corresponds to an AST location.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
68 * <li>Probing is only supported at
22247
c1c9c6d79f40 Truffle/Instrumentation: remove method Instrumenter.isInstrumentable()
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22235
diff changeset
69 * {@linkplain com.oracle.truffle.api.nodes.Node Nodes} where supported by specific language implementations.</li>
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
70 * <li>The relationship between a
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
71 * {@linkplain com.oracle.truffle.api.instrument.Probe Probe} and
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
72 * a source code location persists across Truffle <em>cloning</em> of ASTs, which is to say, a single
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
73 * {@linkplain com.oracle.truffle.api.instrument.Probe Probe} corresponds to (and keeps track of)
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
74 * the equivalent location in every clone of the original AST.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
75 * <li>Probing is specified by
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
76 * {@linkplain com.oracle.truffle.api.instrument.Instrumenter#registerASTProber(ASTProber) registering}
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
77 * an instance of
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
78 * {@linkplain com.oracle.truffle.api.instrument.ASTProber ASTProber}.
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
79 * A default prober provided by each {@linkplain com.oracle.truffle.api.TruffleLanguage TruffelLanguage}
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
80 * will be registered automatically.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
81 * <li>All AST probing must be complete before any AST execution has started.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
82 * </ul></li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
83 *
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
84 * <li><strong>AST Markup: tagging</strong>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
85 * <ul>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
86 * <li>Additional information can be added at any time to a
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
87 * {@linkplain com.oracle.truffle.api.instrument.Probe Probe} by
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
88 * {@linkplain com.oracle.truffle.api.instrument.Probe#tagAs(SyntaxTag, Object) adding} to its set of
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
89 * {@linkplain com.oracle.truffle.api.instrument.SyntaxTag tags}.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
90 *
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
91 * <li>{@linkplain com.oracle.truffle.api.instrument.StandardSyntaxTag Standard tags} should
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
92 * be used for common, language-agnostic concepts such as
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
93 * {@linkplain com.oracle.truffle.api.instrument.StandardSyntaxTag#STATEMENT STATEMENT}, and this
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
94 * is usually done by each language's default
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
95 * {@linkplain com.oracle.truffle.api.instrument.ASTProber ASTProber} while
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
96 * {@linkplain com.oracle.truffle.api.instrument.Probe Probes} are being created.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
97 * <li>{@linkplain com.oracle.truffle.api.instrument.SyntaxTag Tags} serve to configure the behavior
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
98 * of clients during program execution. For example, knowing which
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
99 * {@linkplain com.oracle.truffle.api.instrument.Probe Probes} are on
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
100 * {@linkplain com.oracle.truffle.api.instrument.StandardSyntaxTag#STATEMENT STATEMENT nodes}
22248
6d328e688339 Truffle/Instrumentation: Javadoc cleanup
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22247
diff changeset
101 * informs both the CoverageTracker and the
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
102 * {@linkplain com.oracle.truffle.api.debug.Debugger debugger} while "stepping".</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
103 * <li>{@linkplain com.oracle.truffle.api.instrument.SyntaxTag tags} can also be added at any
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
104 * time by any client for any purpose, including private
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
105 * {@linkplain com.oracle.truffle.api.instrument.SyntaxTag Tags} about which other clients
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
106 * can learn nothing.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
107 * </ul></li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
108 *
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
109 * <li><strong>Markup Discovery: finding probes</strong>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
110 * <ul>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
111 * <li>Clients can be observe {@linkplain com.oracle.truffle.api.instrument.Probe Probes}
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
112 * being {@linkplain com.oracle.truffle.api.instrument.Instrumenter#probe(com.oracle.truffle.api.nodes.Node) created} and
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
113 * {@linkplain com.oracle.truffle.api.instrument.SyntaxTag Tags} being
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
114 * {@linkplain com.oracle.truffle.api.instrument.Probe#tagAs(SyntaxTag, Object) added} by
22248
6d328e688339 Truffle/Instrumentation: Javadoc cleanup
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22247
diff changeset
115 * {@linkplain com.oracle.truffle.api.instrument.Instrumenter#addProbeListener(ProbeListener) registering} a
6d328e688339 Truffle/Instrumentation: Javadoc cleanup
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22247
diff changeset
116 * {@linkplain com.oracle.truffle.api.instrument.ProbeListener ProbeListener}.</li>
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
117 * <li>Clients can also
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
118 * {@linkplain com.oracle.truffle.api.instrument.Instrumenter#findProbesTaggedAs(SyntaxTag) find} all existing
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
119 * {@linkplain com.oracle.truffle.api.instrument.Probe Probes}, possibly filtering the search by
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
120 * {@linkplain com.oracle.truffle.api.instrument.SyntaxTag tag}.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
121 * </ul></li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
122 *
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
123 * <li><strong>Observing Execution: event listening:</strong>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
124 * <ul>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
125 * <li>Clients can be notified of <em>AST execution events</em> by creating one of several kinds of
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
126 * <em>event listener</em> and <em>attaching</em> it to a
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
127 * {@linkplain com.oracle.truffle.api.instrument.Probe Probe}. This creates an
22255
e7643754d982 Truffle/Instrumentation: rename Instrument to ProbeInstrument to distinguish from another kind to be added.
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22248
diff changeset
128 * {@linkplain com.oracle.truffle.api.instrument.ProbeInstrument Instrument} that notifies the listener
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
129 * of every subsequent execution event at the AST location corresponding to the
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
130 * {@linkplain com.oracle.truffle.api.instrument.Probe Probe}.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
131 * <li>An
22255
e7643754d982 Truffle/Instrumentation: rename Instrument to ProbeInstrument to distinguish from another kind to be added.
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22248
diff changeset
132 * {@linkplain com.oracle.truffle.api.instrument.ProbeInstrument Instrument} can be
e7643754d982 Truffle/Instrumentation: rename Instrument to ProbeInstrument to distinguish from another kind to be added.
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22248
diff changeset
133 * {@linkplain com.oracle.truffle.api.instrument.ProbeInstrument#dispose() disposed}, at which time
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
134 * it is removed from service at every clone of the AST, incurs no further overhead, and is
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
135 * permanently unusable.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
136 * <li>Many clients need only implement a
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
137 * {@linkplain com.oracle.truffle.api.instrument.SimpleInstrumentListener SimpleInstrumentListener},
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
138 * whose notification methods provide only the instance of the
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
139 * {@linkplain com.oracle.truffle.api.instrument.Probe Probe} to which it was attached. This
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
140 * provides access to the corresponding
22248
6d328e688339 Truffle/Instrumentation: Javadoc cleanup
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22247
diff changeset
141 * {@linkplain com.oracle.truffle.api.source.SourceSection source code location} and any
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
142 * {@linkplain com.oracle.truffle.api.instrument.SyntaxTag tags} that had been applied there.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
143 * <li>Clients that require deeper access to execution state implement a
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
144 * {@linkplain com.oracle.truffle.api.instrument.StandardInstrumentListener StandardInstrumentListener}
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
145 * whose notification methods provide access to the concrete
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
146 * {@linkplain com.oracle.truffle.api.nodes.Node AST location} and current
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
147 * {@linkplain com.oracle.truffle.api.frame.Frame stack frame}.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
148 * <li>Clients can also create an
22255
e7643754d982 Truffle/Instrumentation: rename Instrument to ProbeInstrument to distinguish from another kind to be added.
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22248
diff changeset
149 * {@linkplain com.oracle.truffle.api.instrument.ProbeInstrument Instrument} (whose design is currently
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
150 * under revision) that supports (effectively) inserting a Truffle AST fragment into the AST
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
151 * location, where it will be executed subject to full Truffle optimization.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
152 * </ul></li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
153 *
22256
75e5db92973a TruffleInstrumentation: fold the "TagTrap" mechanism into the general framework of Instruments, Listeners, and management via Instrumenter.attach() methods.
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22255
diff changeset
154 * <li><strong>Wide-area Instrumentation: TagInstruments</strong>
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
155 * <ul>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
156 * <li>A specialized form of Instrumentation is provided that efficiently attaches a single
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
157 * listener called a
22256
75e5db92973a TruffleInstrumentation: fold the "TagTrap" mechanism into the general framework of Instruments, Listeners, and management via Instrumenter.attach() methods.
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22255
diff changeset
158 * {@linkplain com.oracle.truffle.api.instrument.StandardBeforeInstrumentListener StandardBeforeInstrumentListener} to every
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
159 * {@linkplain com.oracle.truffle.api.instrument.Probe Probe} containing a specified
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
160 * {@linkplain com.oracle.truffle.api.instrument.SyntaxTag tag}.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
161 * <li>One (but no more than one)
22256
75e5db92973a TruffleInstrumentation: fold the "TagTrap" mechanism into the general framework of Instruments, Listeners, and management via Instrumenter.attach() methods.
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22255
diff changeset
162 * {@linkplain com.oracle.truffle.api.instrument.StandardBeforeInstrumentListener StandardBeforeInstrumentListener}
75e5db92973a TruffleInstrumentation: fold the "TagTrap" mechanism into the general framework of Instruments, Listeners, and management via Instrumenter.attach() methods.
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22255
diff changeset
163 * may optionally be attached for notification <em>before</em> every <em>AST execution event</em> where the specified
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
164 * {@linkplain com.oracle.truffle.api.instrument.SyntaxTag tag} is present.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
165 * <li>One (but no more than one)
22259
1348cc2e084e Truffle/Instrumentation: javadoc
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22256
diff changeset
166 * {@linkplain com.oracle.truffle.api.instrument.StandardAfterInstrumentListener StandardAfterInstrumentListener}
22256
75e5db92973a TruffleInstrumentation: fold the "TagTrap" mechanism into the general framework of Instruments, Listeners, and management via Instrumenter.attach() methods.
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22255
diff changeset
167 * may optionally be attached for notification <em>after</em> every <em>AST execution event</em> where the specified
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
168 * {@linkplain com.oracle.truffle.api.instrument.SyntaxTag tag} is present.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
169 * <li>The
22256
75e5db92973a TruffleInstrumentation: fold the "TagTrap" mechanism into the general framework of Instruments, Listeners, and management via Instrumenter.attach() methods.
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22255
diff changeset
170 * {@linkplain com.oracle.truffle.api.instrument.TagInstrument TagInstrument} mechanism is independent
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
171 * of listeners that may be attached to
22256
75e5db92973a TruffleInstrumentation: fold the "TagTrap" mechanism into the general framework of Instruments, Listeners, and management via Instrumenter.attach() methods.
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22255
diff changeset
172 * {@linkplain com.oracle.truffle.api.instrument.Probe Probes}. It is especially valuable for
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
173 * applications such as the debugger, where during "stepping" the program should be halted at
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
174 * any node tagged with
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
175 * {@linkplain com.oracle.truffle.api.instrument.StandardSyntaxTag#STATEMENT STATEMENT}.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
176 * </ul></li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
177 *
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
178 * <li><strong>Data Gathering Utilities: tools</strong>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
179 * <ul>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
180 * <li>The Instrumentation Framework supports extensible set of utilities that can be
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
181 * {@linkplain com.oracle.truffle.api.instrument.Instrumenter#install(com.oracle.truffle.api.instrument.Instrumenter.Tool)
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
182 * installed}, at which time they start collecting information that can be queried at any time.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
183 * <li>Once installed, these
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
184 * {@linkplain com.oracle.truffle.api.instrument.Instrumenter.Tool tools} can be dynamically
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
185 * {@linkplain com.oracle.truffle.api.instrument.Instrumenter.Tool#setEnabled(boolean) disabled and re-enabled} and eventually
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
186 * {@linkplain com.oracle.truffle.api.instrument.Instrumenter.Tool#dispose() disposed} when no longer needed.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
187 * <li>A useful example is the
22248
6d328e688339 Truffle/Instrumentation: Javadoc cleanup
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22247
diff changeset
188 * {@linkplain com.oracle.truffle.api.debug.LineToProbesMap LineToProbesMap}, which incrementally builds and maintains a map of
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
189 * {@linkplain com.oracle.truffle.api.instrument.Probe Probes} indexed by
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
190 * {@linkplain com.oracle.truffle.api.source.LineLocation source code line}. Truffle
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
191 * {@linkplain com.oracle.truffle.api.debug.Debugger debugging services} depend heavily on this utility.</li>
22248
6d328e688339 Truffle/Instrumentation: Javadoc cleanup
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22247
diff changeset
192 * <li>The CoverageTracker maintains counts of execution events where a
22235
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
193 * {@linkplain com.oracle.truffle.api.instrument.Probe Probe} has been tagged with
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
194 * {@linkplain com.oracle.truffle.api.instrument.StandardSyntaxTag#STATEMENT STATEMENT}, indexed by source code line.</li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
195 * </ul></li>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
196 * </ul>
e110ab9f91fe Truffle/Instrumentation: package-info for com.oracle.truffle.api.instrument
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 22004
diff changeset
197 *
21972
ff6f34159b8a Providing package-info for most of API packages. Feel free to provide your package-info.java for anything that has API in its name.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
198 */
ff6f34159b8a Providing package-info for most of API packages. Feel free to provide your package-info.java for anything that has API in its name.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
199 package com.oracle.truffle.api.instrument;
ff6f34159b8a Providing package-info for most of API packages. Feel free to provide your package-info.java for anything that has API in its name.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
diff changeset
200