Hash$B$N%G%U%)%k%HCM$N%V%m%C%/$GL58B%k!<%W$9$k$H(Bcore

e$B$-$7$b$H$G$9e(B

trunke$B$G0J2<$N$h$&$J!“L58B$K:F5”$9$k%9%/%j%W%H$r<B9T$9$k$H!"e(B
SystemStackErrore$B$K$J$i$:$Ke(Bcoree$B$rEG$-$^$9!#e(B

Foo = Hash.new{|h, k| bar}
def bar
Foo[‘key’]
end
bar

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

In message “Re: [ruby-dev:38252]
Hashe$B$N%G%U%)%k%HCM$N%V%m%C%/$GL58B%k!<%W$9$k$He(Bcore”
on Thu, 2 Apr 2009 19:17:22 +0900, “KISHIMOTO, Makoto”
[email protected] writes:

|trunke$B$G0J2<$N$h$&$J!“L58B$K:F5”$9$k%9%/%j%W%H$r<B9T$9$k$H!"e(B
|SystemStackErrore$B$K$J$i$:$Ke(Bcoree$B$rEG$-$^$9!#e(B

e$B;d$N5-21$,@5$7$1$l$P!"L58B%k!<%W$r40A4$K8!=P$9$k$?$a$K$O$+$Je(B
e$B$j$N<B9T%Z%J%k%F%#$r$H$b$J$&$?$a!"8=>u$O$=$3$^$GE0Dl$7$F$$$Je(B
e$B$$$H;W$$$^$9!#e(B

|trunke$B$G0J2<$N$h$&$J!“L58B$K:F5”$9$k%9%/%j%W%H$r<B9T$9$k$H!"e(B
|SystemStackErrore$B$K$J$i$:$Ke(Bcoree$B$rEG$-$^$9!#e(B

e$B;d$N5-21$,@5$7$1$l$P!"L58B%k!<%W$r40A4$K8!=P$9$k$?$a$K$O$+$Je(B
e$B$j$N<B9T%Z%J%k%F%#$r$H$b$J$&$?$a!"8=>u$O$=$3$^$GE0Dl$7$F$$$Je(B
e$B$$$H;W$$$^$9!#e(B

e$B$?$H$($P0J2<$N$h$&$JL58B%k!<%W$N>l9g!"e(BSystemStackErrore$B$K$J$k$N$G$9$,!"e(B
e$B$3$l$OL58B%k!<%W$r8!=P$7$F$=$&$7$F$$$k$N$G$7$g$&$+!)e(B

$ cat foo.rb
def foo
foo
end
foo
$ ruby19 foo.rb
foo.rb:2:in foo': stack level too deep (SystemStackError) from foo.rb:2:infoo’
from foo.rb:2:in foo' from foo.rb:2:infoo’
from foo.rb:2:in foo' from foo.rb:2:infoo’
from foo.rb:2:in foo' from foo.rb:2:infoo’
from foo.rb:2:in foo' ... 8717 levels... from foo.rb:2:infoo’
from foo.rb:2:in foo' from foo.rb:2:infoo’
from foo.rb:5:in `’

e$B$J$+$@$G$9!#e(B

At Tue, 7 Apr 2009 20:36:00 +0900,
SASADA Koichi wrote in [ruby-dev:38288]:

e$B!!:G=i$NNc$O!$e(BRuby e$B$+$ie(B C e$B$r8F$S=P$7$F!$$=$3$+$ie(B Ruby e$B$r8F$s$G!$$=$l$,e(B C
e$B$K!$$H$$$&$h$&$K!$e(BC e$B8F$S=P$7$,=E$J$j!$%^%7%s%9%?%C%/$,%!<%P!<%U%m!<$7$^e(B
e$B$9!%e(BC e$B%l%Y%k$G$N!$%^%7%s%9%?%C%/$N%
!<%P!<%U%m!<$O!$??LLL$K8!=P$9$k$N$Oe(B
e$BBgJQ$J$N$G$d$C$F$$$J$$!$$H$$$&$3$H$8$c$J$$$+$H;W$$$^$9!%%^%7%s!&e(BOSe$B0MB8$Ne(B
e$B8!=PJ}K!$O$"$k$1$l$I!$$^$!$=$3$^$G??LLL$K$d$C$F$$$J$$!$$s$8$c$J$+$C$?$Ge(B
e$B$7$?$C$1$+!J$"$l!$e(Bsegv e$B%O%s%I%i<~$j$G$J$s$+$d$C$F$?$C$1!)!K!%e(B

sigaltstack()e$B$N$"$k%7%9%F%`$G$O8!=P$7$F$$$k$O$:$G$9!#$?$@$7!"%9e(B
e$B%?%C%/%*!<%P!<%U%m!<$H$=$l0J30$Ne(BSEGVe$B$NH=JL$K$OHyL/$JItJ,$b$"$k$Ne(B
e$B$G$9$,!"$-$7$b$H$5$s$N4D6-$,ITL@$J$N$G$J$s$H$b$$$($^$;$s!#e(B

e$B!!$5$5$@$G$9!%e(B

KISHIMOTO, Makoto wrote::

e$B;d$N5-21$,@5$7$1$l$P!"L58B%k!<%W$r40A4$K8!=P$9$k$?$a$K$O$+$Je(B
e$B$j$N<B9T%Z%J%k%F%#$r$H$b$J$&$?$a!"8=>u$O$=$3$^$GE0Dl$7$F$$$Je(B
e$B$$$H;W$$$^$9!#e(B

e$B!!L58B%k!<%W$N8!=P$H$$$&$+!$%9%?%C%/%*!<%P!<%U%m!<$N8!=P$G$9$h$M!%L58Be(B
e$B%k!<%W$N8!=P$7$?$C$F!$e(Bwhile true; …; end
e$B$OB?J,@5$7$$%W%m%0%i%`!%e(B

e$B$?$H$($P0J2<$N$h$&$JL58B%k!<%W$N>l9g!"e(BSystemStackErrore$B$K$J$k$N$G$9$,!"e(B
e$B$3$l$OL58B%k!<%W$r8!=P$7$F$=$&$7$F$$$k$N$G$7$g$&$+!)e(B

e$B!!e(BRuby e$B%l%Y%k$G$N%9%?%C%/%!<%P!<%U%m!<!$$D$^$je(B VM
e$B%l%Y%k$G$N%9%?%C%/e(B
e$B%
!<%P!<%U%m!<$O!JB?J,!K$-$A$s$H8!=P$9$k$h$&$K$J$C$F$$$^$9!%e(B

e$B!!:G=i$NNc$O!$e(BRuby e$B$+$ie(B C e$B$r8F$S=P$7$F!$$=$3$+$ie(B Ruby
e$B$r8F$s$G!$$=$l$,e(B C
e$B$K!$$H$$$&$h$&$K!$e(BC
e$B8F$S=P$7$,=E$J$j!$%^%7%s%9%?%C%/$,%!<%P!<%U%m!<$7$^e(B
e$B$9!%e(BC
e$B%l%Y%k$G$N!$%^%7%s%9%?%C%/$N%
!<%P!<%U%m!<$O!$??LLL$K8!=P$9$k$N$Oe(B
e$BBgJQ$J$N$G$d$C$F$$$J$$!$$H$$$&$3$H$8$c$J$$$+$H;W$$$^$9!%%^%7%s!&e(BOSe$B0MB8$Ne(B
e$B8!=PJ}K!$O$"$k$1$l$I!$$^$!$=$3$^$G??LLL$K$d$C$F$$$J$$!$$s$8$c$J$+$C$?$Ge(B
e$B$7$?$C$1$+!J$"$l!$e(Bsegv
e$B%O%s%I%i<~$j$G$J$s$+$d$C$F$?$C$1!)!K!%e(B

e$B$h$7$*$+$H?=$7$^$9!#e(B

sigsegve$B$G$3$1$k$H$-$Ke(Bsigaltstack()e$B$r;H$&$H$$$&$*OC$G$7$?$i!“e(B

e$B$”$?$j$N$*OC$+$J$"$H;W$$$^$9!#e(B

e$B:G6ae(BDebug Hackse$B$H$$$&K$r=q$$$?$N$G$9$,!“e(B
e$B$=$l$r%M%?$Ke(BHacke$B$r=q$-$^$7$?!#e(B
http://www.oreilly.co.jp/editors/archives/2009/03/debug-hackshack.html
http://www.oreilly.co.jp/editors/debug_hacks_26.pdf
e$B”,$K869Fe(BPDFe$B$,$"$j$^$9!#$4>PMw$$$?$@$1$l$P9,$$$G$9!#e(B

e$BL$>5Bz9-9p<:Ni$7$^$7$?!#e(B

e$B$he(B

http://someday-join-us.blogspot.com/
http://blog.miraclelinux.com/yume/
mailto:[email protected]
Debug Hacks–e$B%G%P%C%0$r6K$a$k%F%/%K%C%/!u%D!<%kM=Ls<uIUCfe(B

2009/4/8 Nobuyoshi N. [email protected]: