Mercurial > hg > graal-compiler
comparison graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLStackTraceBuiltin.java @ 16529:f6ac86d3334e
Change API for stack walking to a visitor: TruffleRuntime#iterateFrames replaces TruffleRuntime#getStackTrace
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Tue, 15 Jul 2014 16:34:53 -0700 |
parents | a3b0ecef8a15 |
children | fb1c21844758 |
comparison
equal
deleted
inserted
replaced
16510:b0ea5c266655 | 16529:f6ac86d3334e |
---|---|
43 } | 43 } |
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 Iterable<FrameInstance> frames = Truffle.getRuntime().getStackTrace(); | |
49 | 48 |
50 if (frames != null) { | 49 Truffle.getRuntime().iterateFrames(frameInstance -> { |
51 for (FrameInstance frame : frames) { | 50 dumpFrame(str, frameInstance.getCallTarget(), frameInstance.getFrame(FrameAccess.READ_ONLY, true), frameInstance.isVirtualFrame()); |
52 dumpFrame(str, frame.getCallTarget(), frame.getFrame(FrameAccess.READ_ONLY, true), frame.isVirtualFrame()); | 51 return null; |
53 } | 52 }); |
54 } | |
55 return str.toString(); | 53 return str.toString(); |
56 } | 54 } |
57 | 55 |
58 private static void dumpFrame(StringBuilder str, CallTarget callTarget, Frame frame, boolean isVirtual) { | 56 private static void dumpFrame(StringBuilder str, CallTarget callTarget, Frame frame, boolean isVirtual) { |
59 if (str.length() > 0) { | 57 if (str.length() > 0) { |