diff src/luan/LuanBit.java @ 132:14281d5bd36f

minor git-svn-id: https://luan-java.googlecode.com/svn/trunk@133 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Tue, 10 Jun 2014 09:17:25 +0000
parents 0594c132888b
children c9100f29fae0
line wrap: on
line diff
--- a/src/luan/LuanBit.java	Tue Jun 10 04:15:19 2014 +0000
+++ b/src/luan/LuanBit.java	Tue Jun 10 09:17:25 2014 +0000
@@ -16,6 +16,21 @@
 		return new LuanException(this,msg);
 	}
 
+	public String stackTrace() {
+		StringBuilder buf = new StringBuilder();
+		LuanElement el = this.el;
+		for( int i  = luan.stackTrace.size() - 1; i>=0; i-- ) {
+			StackTraceElement stackTraceElement = luan.stackTrace.get(i);
+			buf.append( "\n\t" ).append( el.toString(stackTraceElement.fnName) );
+			el = stackTraceElement.call;
+		}
+		return buf.toString();
+	}
+
+	public void dumpStack() {
+		System.err.println( stackTrace() );
+	}
+
 	public Object call(LuanFunction fn,String fnName,Object[] args) throws LuanException {
 		List<StackTraceElement> stackTrace = luan.stackTrace;
 		stackTrace.add( new StackTraceElement(el,fnName) );