# Full stack trace on exception

**URL:** <https://www.ruby-forum.com/t/full-stack-trace-on-exception/107048>\
**Category:** Development\
**Created:** [June 17, 2007, 10:34am UTC](https://www.ruby-forum.com/t/full-stack-trace-on-exception/107048 "2007-06-17T10:34:44Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [June 17, 2007, 10:34am UTC](https://www.ruby-forum.com/t/full-stack-trace-on-exception/107048/1 "2007-06-17T10:34:44Z")

</div>

Ruby e$B$ONc30$,JaB\*$5$l$J$$\>l9g!"%9%?%C%/%H%l!\<%9$rI=\<($7$F$/e(B  
e$B$l$^$9$,!"$=$N$H$-!"e(B… 6 levels… e$B$J$I$HESCf$r\>JN,$7$F$/$le(B  
e$B$^$9!#e(B

% ./ruby -e ‘def m(n) if n == 0 then raise else m(n-1) end end  
m(16)’  
-e:1:in `raise': unhandled exception from -e:1:in`m’  
from -e:1:in `m' from -e:1:in`m’  
from -e:1:in `m' from -e:1:in`m’  
from -e:1:in `m' from -e:1:in`m’  
from -e:1:in `m' ... 6 levels... from -e:1:in`m’  
from -e:1:in `m' from -e:1:in`m’  
from -e:2:in `’

e$B$3$l$O!“L58B:F5”$G%9%?%C%/%H%l!\<%9$,$H$s$G$b$J$/D9$/$J$C$?\>le(B  
e$B9g$K$O$"$j$,$?$$$N$G$9$,!“I,MW$J\>pJs$,1#$l$F$7$^$&$3$H$b$”$je(B  
e$B$^$9!#e(B

e$B$=$N$?$a!“A4ItI=\<($7$F$[$7$$$H$$$&MW5a$,=P$F$-$F!”$A$g$C$HD4e(B  
e$B$Y$?$@$1$G$be(B  
[ruby-talk:56054], [ruby-talk:75008], [ruby-list:38810],  
[ruby-talk:86343],  
[ruby-talk:115962], [ruby-talk:159209], [ruby-core:6572],  
[ruby-talk:187642]  
e$B$GLdBjDs5/$,$J$5$l$F$$$^$9!#e(B

e$B$G!";W$C$?$N$G$9$,!"H/@8$7$?Nc30$,e(B SystemStackError e$B$G$J$$$He(B  
e$B$-$OA4It=P$9$N$O$I$&$G$7$g$&$+!#e(B

# Index: eval\_error.h

— eval\_error.h (e$B%j%S%8%g%se(B 12561)  
+++ eval\_error.h (e$B:n6H%3%T!\<e(B)  
@@ -155,6 +155,7 @@  
long i;  
long len = RARRAY\_LEN(errat);  
VALUE \*ptr = RARRAY\_PTR(errat);

- 

```
   int truncate = eclass == rb_eSysStackError;

```

#define TRACE\_MAX (TRACE\_HEAD+TRACE\_TAIL+5)  
#define TRACE\_HEAD 8  
@@ -164,7 +165,7 @@  
if (TYPE(ptr[i]) == T\_STRING) {  
warn\_printf("\tfrom %s\n", RSTRING\_PTR(ptr[i]));  
}

- 

```
 if (i == TRACE_HEAD && len > TRACE_MAX) {

```

- 

```
 if (truncate && i == TRACE_HEAD && len > TRACE_MAX) {

```

warn\_printf("\t … %ld levels…\n",  
len - TRACE\_HEAD - TRACE\_TAIL);  
i = len - TRACE\_TAIL;

---

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [June 19, 2007, 6:47pm UTC](https://www.ruby-forum.com/t/full-stack-trace-on-exception/107048/2 "2007-06-19T18:47:17Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:31014] full stack trace on exception”  
on Sun, 17 Jun 2007 17:31:42 +0900, Tanaka A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
writes:

|Ruby e$B$ONc30$,JaB\*$5$l$J$$\>l9g!“%9%?%C%/%H%l!\<%9$rI=\<($7$F$/e(B  
|e$B$l$^$9$,!”$=$N$H$-!"e(B… 6 levels… e$B$J$I$HESCf$r\>JN,$7$F$/$le(B  
|e$B$^$9!#e(B

|e$B$3$l$O!“L58B:F5”$G%9%?%C%/%H%l!\<%9$,$H$s$G$b$J$/D9$/$J$C$?\>le(B  
|e$B9g$K$O$“$j$,$?$$$N$G$9$,!“I,MW$J\>pJs$,1#$l$F$7$^$&$3$H$b$”$je(B  
|e$B$^$9!#e(B  
|  
|e$B$=$N$?$a!“A4ItI=\<($7$F$[$7$$$H$$$&MW5a$,=P$F$-$F!”$A$g$C$HD4e(B  
|e$B$Y$?$@$1$G$be(B  
|[ruby-talk:56054], [ruby-talk:75008], [ruby-list:38810], [ruby-talk:86343],  
|[ruby-talk:115962], [ruby-talk:159209], [ruby-core:6572], [ruby-talk:187642]  
|e$B$GLdBjDs5/$,$J$5$l$F$$$^$9!#e(B  
|  
|e$B$G!”;W$C$?$N$G$9$,!"H/@8$7$?Nc30$,e(B SystemStackError e$B$G$J$$$He(B  
|e$B$-$OA4It=P$9$N$O$I$&$G$7$g$&$+!#e(B

e$BBEEv$@$H;W$$$^$9!#$7$P$i$/;n$7$F$_$^$7$g$&!#%3%_%C%H$7$F$/$@$5$$!#e(B
