comparison truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/Debugger.java @ 22448:1c3deda60a9e

Truffle/Debugging: the REPL debugger now remembers breakpoint requests it receives from the command line client when there have been no executions yet (which means breakpoints cannot be set in the engine/debugger). When the first execution event arrives (with a reference to the Debugger), any "pending" breakpoints are created with the Debugger. This involved a bit of refactoring on the Breakpoint class hierarchy.
author Michael Van De Vanter <michael.van.de.vanter@oracle.com>
date Wed, 04 Nov 2015 16:33:40 -0800
parents 9f478b9db4f7
children 163fdf64587d
comparison
equal deleted inserted replaced
22444:c3e397ce5941 22448:1c3deda60a9e
150 * @param oneShot breakpoint disposes itself after fist hit, if {@code true} 150 * @param oneShot breakpoint disposes itself after fist hit, if {@code true}
151 * @return a new breakpoint, initially enabled 151 * @return a new breakpoint, initially enabled
152 * @throws IOException if the breakpoint can not be set. 152 * @throws IOException if the breakpoint can not be set.
153 */ 153 */
154 @TruffleBoundary 154 @TruffleBoundary
155 public Breakpoint setLineBreakpoint(int ignoreCount, LineLocation lineLocation, boolean oneShot) throws IOException { 155 public LineBreakpoint setLineBreakpoint(int ignoreCount, LineLocation lineLocation, boolean oneShot) throws IOException {
156 return lineBreaks.create(ignoreCount, lineLocation, oneShot); 156 return lineBreaks.create(ignoreCount, lineLocation, oneShot);
157 } 157 }
158 158
159 /** 159 /**
160 * Sets a breakpoint to halt at any node holding a specified {@link SyntaxTag}. 160 * Sets a breakpoint to halt at any node holding a specified {@link SyntaxTag}.
163 * @param oneShot if {@code true} breakpoint removes it self after a hit 163 * @param oneShot if {@code true} breakpoint removes it self after a hit
164 * @return a new breakpoint, initially enabled 164 * @return a new breakpoint, initially enabled
165 * @throws IOException if the breakpoint already set 165 * @throws IOException if the breakpoint already set
166 */ 166 */
167 @TruffleBoundary 167 @TruffleBoundary
168 public Breakpoint setTagBreakpoint(int ignoreCount, SyntaxTag tag, boolean oneShot) throws IOException { 168 public TagBreakpoint setTagBreakpoint(int ignoreCount, SyntaxTag tag, boolean oneShot) throws IOException {
169 return tagBreaks.create(ignoreCount, tag, oneShot); 169 return tagBreaks.create(ignoreCount, tag, oneShot);
170 } 170 }
171 171
172 /** 172 /**
173 * Gets all existing breakpoints, whatever their status, in natural sorted order. Modification 173 * Gets all existing breakpoints, whatever their status, in natural sorted order. Modification