summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-06-19 23:27:47 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-06-19 23:27:47 +0000
commit09205f96104c61186751af2bbb01139b98dfbce4 (patch)
treee3c5df8d152c1be2aac3633211995962aad92428
parent764ca109a44c63743f0b47873c7bdfce539714a5 (diff)
downloadruby-09205f96104c61186751af2bbb01139b98dfbce4.tar.gz
ruby-09205f96104c61186751af2bbb01139b98dfbce4.tar.xz
ruby-09205f96104c61186751af2bbb01139b98dfbce4.zip
* eval_error.h (error_print): show full stacktrace on
non-SystemStackError. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--eval_error.h3
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 5b5f89c23..faceff3ec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Jun 20 08:27:57 2007 Tanaka Akira <akr@fsij.org>
+
+ * eval_error.h (error_print): show full stacktrace on
+ non-SystemStackError.
+
Wed Jun 20 04:45:39 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
* parse.y (rb_intern2): use rb_intern2 to intern without trailing
diff --git a/eval_error.h b/eval_error.h
index cbbf534d6..8792462df 100644
--- a/eval_error.h
+++ b/eval_error.h
@@ -155,6 +155,7 @@ error_print(void)
long i;
long len = RARRAY_LEN(errat);
VALUE *ptr = RARRAY_PTR(errat);
+ int skip = eclass == rb_eSysStackError;
#define TRACE_MAX (TRACE_HEAD+TRACE_TAIL+5)
#define TRACE_HEAD 8
@@ -164,7 +165,7 @@ error_print(void)
if (TYPE(ptr[i]) == T_STRING) {
warn_printf("\tfrom %s\n", RSTRING_PTR(ptr[i]));
}
- if (i == TRACE_HEAD && len > TRACE_MAX) {
+ if (skip && i == TRACE_HEAD && len > TRACE_MAX) {
warn_printf("\t ... %ld levels...\n",
len - TRACE_HEAD - TRACE_TAIL);
i = len - TRACE_TAIL;