Mercurial > hg > truffle
diff graal/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/server/REPLHandler.java @ 21890:894f82515e38
Truffle/APIs and Debugging: Evolutionary steps to integrating debugging and tool support with TruffleVM APIs
- Add a version string to language registration: Language.getShortName() produces a string with both language and version
- Rename SLMain --> SLLanguage (little change current machinery)
- Remove DebugEngine dependence on ExecutionContext: Visualizer access migrated to TruffleLanguage
- ExecutionContext now has only one method left: getCompilerOptions()
- Rename SourceExecutionProvider to DebugSupportProvider, now supplied by implementing abstract TruffleLanguage.getDebugSupport()
- Revise DebugEngine and its helper classes to work with the new APIs
author | Michael Van De Vanter <michael.van.de.vanter@oracle.com> |
---|---|
date | Tue, 09 Jun 2015 15:20:30 -0700 |
parents | 3b8bbf51d320 |
children |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/server/REPLHandler.java Fri Jun 05 18:05:13 2015 -0700 +++ b/graal/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/server/REPLHandler.java Tue Jun 09 15:20:30 2015 -0700 @@ -26,13 +26,13 @@ import java.util.*; -import com.oracle.truffle.api.*; import com.oracle.truffle.api.frame.*; import com.oracle.truffle.api.instrument.*; import com.oracle.truffle.api.nodes.*; import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.vm.TruffleVM.Language; +import com.oracle.truffle.tools.debug.engine.*; import com.oracle.truffle.tools.debug.shell.*; -import com.oracle.truffle.tools.debug.engine.*; /** * Server-side REPL implementation of an {@linkplain REPLMessage "op"}. @@ -115,7 +115,7 @@ } protected static REPLMessage createFrameInfoMessage(final REPLServerContext serverContext, FrameDebugDescription frame) { - final Visualizer visualizer = serverContext.getLanguageContext().getVisualizer(); + final Visualizer visualizer = serverContext.getLanguage().getDebugSupport().getVisualizer(); final REPLMessage infoMessage = new REPLMessage(REPLMessage.OP, REPLMessage.FRAME_INFO); infoMessage.put(REPLMessage.FRAME_NUMBER, Integer.toString(frame.index())); final Node node = frame.node(); @@ -402,15 +402,16 @@ final FrameDebugDescription frameDescription = stack.get(frameNumber); final REPLMessage frameMessage = createFrameInfoMessage(serverContext, frameDescription); final Frame frame = frameDescription.frameInstance().getFrame(FrameInstance.FrameAccess.READ_ONLY, true); - final ExecutionContext context = serverContext.getLanguageContext(); + final Language language = serverContext.getLanguage(); + final Visualizer visualizer = language.getDebugSupport().getVisualizer(); final FrameDescriptor frameDescriptor = frame.getFrameDescriptor(); try { final StringBuilder sb = new StringBuilder(); for (FrameSlot slot : frameDescriptor.getSlots()) { - sb.append(Integer.toString(slot.getIndex()) + ": " + context.getVisualizer().displayIdentifier(slot) + " = "); + sb.append(Integer.toString(slot.getIndex()) + ": " + visualizer.displayIdentifier(slot) + " = "); try { final Object value = frame.getValue(slot); - sb.append(context.getVisualizer().displayValue(context, value, 0)); + sb.append(visualizer.displayValue(value, 0)); } catch (Exception ex) { sb.append("???"); } @@ -513,7 +514,7 @@ @Override public REPLMessage[] receive(REPLMessage request, REPLServerContext serverContext) { final REPLMessage reply = createReply(); - final ASTPrinter astPrinter = serverContext.getLanguageContext().getVisualizer().getASTPrinter(); + final ASTPrinter astPrinter = serverContext.getLanguage().getDebugSupport().getVisualizer().getASTPrinter(); final String topic = request.get(REPLMessage.TOPIC); reply.put(REPLMessage.TOPIC, topic); Node node = serverContext.getNode(); @@ -574,7 +575,7 @@ @Override public REPLMessage[] receive(REPLMessage request, REPLServerContext serverContext) { final REPLMessage reply = createReply(); - final ASTPrinter astPrinter = serverContext.getLanguageContext().getVisualizer().getASTPrinter(); + final ASTPrinter astPrinter = serverContext.getLanguage().getDebugSupport().getVisualizer().getASTPrinter(); final Node node = serverContext.getNode(); if (node == null) { return finishReplyFailed(reply, "no current AST node");