diff options
Diffstat (limited to 'eval_error.h')
-rw-r--r-- | eval_error.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/eval_error.h b/eval_error.h index cbbf534d65..8792462dfe 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; |