private static void renderBacktraceMRI(RubyStackTraceElement[] trace, String linePrefix, StringBuilder buffer, boolean color) { for (int i = 0; i < trace.length; i++) { RubyStackTraceElement element = trace[i]; buffer .append(linePrefix) .append(element.getFileName()) .append(':') .append(element.getLineNumber()) .append(":in `") .append(element.getMethodName()) .append("'\n"); } }
private static void renderBacktraceMRI(RubyStackTraceElement[] trace, String linePrefix, StringBuilder buffer, boolean color) { for (int i = 0; i < trace.length; i++) { RubyStackTraceElement element = trace[i]; buffer .append(linePrefix) .append(element.getFileName()) .append(':') .append(element.getLineNumber()) .append(":in `") .append(element.getMethodName()) .append("'\n"); } }
@JRubyMethod public IRubyObject base_label(ThreadContext context) { if (baseLabel == null) baseLabel = context.runtime.newString(element.getMethodName()); return baseLabel; }
@JRubyMethod public IRubyObject base_label(ThreadContext context) { if (baseLabel == null) baseLabel = context.runtime.newString(element.getMethodName()); return baseLabel; }
@JRubyMethod public IRubyObject base_label(ThreadContext context) { return context.runtime.newString(element.getMethodName()); }
@JRubyMethod public IRubyObject label(ThreadContext context) { return context.runtime.newString(element.getMethodName()); }
@JRubyMethod public IRubyObject label(ThreadContext context) { return context.runtime.newString(element.getMethodName()); }
@JRubyMethod public IRubyObject base_label(ThreadContext context) { return context.runtime.newString(element.getMethodName()); }
longestMethod = Math.max(longestMethod, frame.getMethodName().length()); String methodName = runtime == null ? frame.getMethodName() : runtime.newSymbol(frame.getMethodName()).idString(); for (int j = 0; j < longestMethod - methodName.length(); j++) { buffer.append(' ');
longestMethod = Math.max(longestMethod, frame.getMethodName().length()); String methodName = runtime == null ? frame.getMethodName() : runtime.newSymbol(frame.getMethodName()).idString(); for (int j = 0; j < longestMethod - methodName.length(); j++) { buffer.append(' ');
@JRubyMethod public IRubyObject label(ThreadContext context) { if (element.getFrameType() == FrameType.BLOCK) { // NOTE: "block in " + ... logic, now, also at RubyStackTraceElement.to_s_mri if (label == null) label = context.runtime.newString("block in " + element.getMethodName()); return label; } return base_label(context); }
longestMethod = Math.max(longestMethod, frame.getMethodName().length()); String methodName = frame.getMethodName(); for (int j = 0; j < longestMethod - methodName.length(); j++) { buffer.append(' ');
@JRubyMethod public IRubyObject label(ThreadContext context) { if (element.getFrameType() == FrameType.BLOCK) { // NOTE: "block in " + ... logic, now, also at RubyStackTraceElement.to_s_mri if (label == null) label = context.runtime.newString("block in " + element.getMethodName()); return label; } return base_label(context); }
longestMethod = Math.max(longestMethod, frame.getMethodName().length()); String methodName = frame.getMethodName(); for (int j = 0; j < longestMethod - methodName.length(); j++) { buffer.append(' ');
public static void logBacktrace(RubyStackTraceElement[] trace) { LOG.info("Backtrace generated:"); for (RubyStackTraceElement element : trace) { LOG.info(" " + element.getFileName() + ":" + element.getLineNumber() + " in " + element.getMethodName()); } }
public static void logBacktrace(RubyStackTraceElement[] trace) { LOG.info("Backtrace generated:"); for (RubyStackTraceElement element : trace) { LOG.info(" " + element.getFileName() + ":" + element.getLineNumber() + " in " + element.getMethodName()); } }
public static IRubyObject generateMRIBacktrace(Ruby runtime, RubyStackTraceElement[] trace) { if (trace == null) { return runtime.getNil(); } RubyArray traceArray = RubyArray.newArray(runtime); for (int i = 0; i < trace.length; i++) { RubyStackTraceElement element = trace[i]; RubyString str = RubyString.newString(runtime, element.getFileName() + ":" + element.getLineNumber() + ":in `" + element.getMethodName() + "'"); traceArray.append(str); } return traceArray; }
public static IRubyObject generateMRIBacktrace(Ruby runtime, RubyStackTraceElement[] trace) { if (trace == null) { return runtime.getNil(); } RubyArray traceArray = RubyArray.newArray(runtime); for (int i = 0; i < trace.length; i++) { RubyStackTraceElement element = trace[i]; RubyString str = RubyString.newString(runtime, element.getFileName() + ":" + element.getLineNumber() + ":in `" + element.getMethodName() + "'"); traceArray.append(str); } return traceArray; }
public static RubyString to_s_mri(ThreadContext context, RubyStackTraceElement element) { RubySymbol methodSym = context.runtime.newSymbol(element.getMethodName()); RubyString line = context.runtime.newString(new ByteList(methodSym.getBytes().length() + element.getFileName().length() + 18)); line.setEncoding(methodSym.getEncoding()); line.cat(element.getFileName().getBytes()); line.cat(CommonByteLists.COLON); line.cat(ConvertBytes.longToByteList(element.getLineNumber())); line.cat(CommonByteLists.BACKTRACE_IN); if (element.getFrameType() == FrameType.BLOCK) line.catString("block in "); line.cat(methodSym.getBytes()); line.cat('\''); return line; }
public static RubyString to_s_mri(ThreadContext context, RubyStackTraceElement element) { RubySymbol methodSym = context.runtime.newSymbol(element.getMethodName()); RubyString line = context.runtime.newString(new ByteList(methodSym.getBytes().length() + element.getFileName().length() + 18)); line.setEncoding(methodSym.getEncoding()); line.cat(element.getFileName().getBytes()); line.cat(CommonByteLists.COLON); line.cat(ConvertBytes.longToByteList(element.getLineNumber())); line.cat(CommonByteLists.BACKTRACE_IN); if (element.getFrameType() == FrameType.BLOCK) line.catString("block in "); line.cat(methodSym.getBytes()); line.cat('\''); return line; }