public override object Call1(Class last_class, object recv, Frame caller, Proc block, object level) { Array list = new Array(); int skip = (int)level; int i = 0; while (caller != null) { if (i >= skip) list.Add(new String(caller.callPoint())); caller = caller.caller; i++; } return list; }
internal static void rb_bug(string mesg, Frame caller) { System.IO.TextWriter stderr = System.Console.Error; if (caller != null) stderr.Write(caller.callPoint()); stderr.Write("[BUG] "); stderr.Write(mesg); stderr.Write(string.Format(CultureInfo.InvariantCulture, "\nruby {0} ({1}) [{2}]\n\n", new object[] { Version.ruby_version, Version.ruby_release_date, Version.ruby_platform })); try { System.Diagnostics.Process.GetCurrentProcess().Kill(); } catch { } }