diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-06-19 23:27:47 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-06-19 23:27:47 +0000 |
commit | 09205f96104c61186751af2bbb01139b98dfbce4 (patch) | |
tree | e3c5df8d152c1be2aac3633211995962aad92428 | |
parent | 764ca109a44c63743f0b47873c7bdfce539714a5 (diff) | |
download | ruby-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-- | ChangeLog | 5 | ||||
-rw-r--r-- | eval_error.h | 3 |
2 files changed, 7 insertions, 1 deletions
@@ -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; |