comparison graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLStackTraceBuiltin.java @ 15088:d3add9b82b71

change to StackIntrospection and Truffle getStackTrace implementation
author Lukas Stadler <lukas.stadler@oracle.com>
date Mon, 14 Apr 2014 18:20:09 +0200
parents f675818d9ad0
children a1b0d7a1ef40
comparison
equal deleted inserted replaced
15087:f3e74d317e83 15088:d3add9b82b71
44 44
45 @SlowPath 45 @SlowPath
46 private static String createStackTrace() { 46 private static String createStackTrace() {
47 StringBuilder str = new StringBuilder(); 47 StringBuilder str = new StringBuilder();
48 for (FrameInstance frame : Truffle.getRuntime().getStackTrace()) { 48 for (FrameInstance frame : Truffle.getRuntime().getStackTrace()) {
49 dumpFrame(str, frame.getCallNode().getRootNode(), frame.getFrame(FrameAccess.READ_ONLY, true), frame.isVirtualFrame()); 49 dumpFrame(str, frame.getCallTarget(), frame.getFrame(FrameAccess.READ_ONLY, true), frame.isVirtualFrame());
50 } 50 }
51 return str.toString(); 51 return str.toString();
52 } 52 }
53 53
54 private static void dumpFrame(StringBuilder str, RootNode rootNode, Frame frame, boolean isVirtual) { 54 private static void dumpFrame(StringBuilder str, CallTarget rootNode, Frame frame, boolean isVirtual) {
55 if (str.length() > 0) { 55 if (str.length() > 0) {
56 str.append("\n"); 56 str.append("\n");
57 } 57 }
58 str.append("Frame: ").append(rootNode).append(isVirtual ? " (virtual)" : ""); 58 str.append("Frame: ").append(rootNode).append(isVirtual ? " (virtual)" : "");
59 FrameDescriptor frameDescriptor = frame.getFrameDescriptor(); 59 FrameDescriptor frameDescriptor = frame.getFrameDescriptor();