diff options
| author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-04-22 15:44:40 +0000 |
|---|---|---|
| committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-04-22 15:44:40 +0000 |
| commit | 168e2a279d041f8a81481af5d068d2fcb09630f4 (patch) | |
| tree | 99308bd876964baeaebe07ec99abfb06fa123d9b | |
| parent | 44837a4fd29a72ec0f08945040707598043c2ccd (diff) | |
* eval.c (error_print): show full stack grace except SystemStackError.
backport from 1.9. [ruby-dev:31014]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | eval.c | 3 |
2 files changed, 7 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Wed Apr 23 00:42:49 2008 Tanaka Akira <akr@fsij.org> + + * eval.c (error_print): show full stack grace except SystemStackError. + backport from 1.9. [ruby-dev:31014] + Wed Apr 23 00:18:45 2008 Kazuhiro NISHIYAMA <zn@mbf.nifty.com> * test/ruby/test_symbol.rb (TestSymbol#test_to_proc): Improve @@ -1307,6 +1307,7 @@ error_print() if (!NIL_P(errat)) { long i; struct RArray *ep = RARRAY(errat); + int truncate = eclass == rb_eSysStackError; #define TRACE_MAX (TRACE_HEAD+TRACE_TAIL+5) #define TRACE_HEAD 8 @@ -1317,7 +1318,7 @@ error_print() if (TYPE(ep->ptr[i]) == T_STRING) { warn_printf("\tfrom %s\n", RSTRING(ep->ptr[i])->ptr); } - if (i == TRACE_HEAD && ep->len > TRACE_MAX) { + if (truncate && i == TRACE_HEAD && ep->len > TRACE_MAX) { warn_printf("\t ... %ld levels...\n", ep->len - TRACE_HEAD - TRACE_TAIL); i = ep->len - TRACE_TAIL; |
