Mercurial > hg > truffle
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 |
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 |