# SEGV by test/ruby/test\_fiber.rb

**URL:** <https://www.ruby-forum.com/t/segv-by-test-ruby-test-fiber-rb/122172>\
**Category:** Development\
**Created:** [December 5, 2007, 6:10am UTC](https://www.ruby-forum.com/t/segv-by-test-ruby-test-fiber-rb/122172 "2007-12-05T06:10:50Z")\
**Posts on this page:** 8\
**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:** [December 5, 2007, 6:10am UTC](https://www.ruby-forum.com/t/segv-by-test-ruby-test-fiber-rb/122172/1 "2007-12-05T06:10:50Z")

</div>

test/ruby/test\_fiber.rb e$B$G$9$,!"0J2\<$N$h$&$Ke(B insnhelper.ci  
e$BFb$Ne(B rb\_ary\_new4 e$B8F$S=P$7$N$H$3$m$Ge(B GC  
e$B$rKh2s5/F0$9$k$h$&$Ke(B  
e$B$9$k$H?t2s$K0lEY$/$i$$$N3d9g$Ge(B SEGV e$B$9$k$h$&$K$J$j$^$9!#e(B

# Index: insnhelper.ci

— insnhelper.ci (e$B%j%S%8%g%se(B 14103)  
+++ insnhelper.ci (e$B:n6H%3%T!\<e(B)  
@@ -159,6 +159,7 @@

/\* rest arguments \*/  
if (iseq-\>arg\_rest != -1) {

- 

```
       rb_gc();
 dst[iseq->arg_rest] = rb_ary_new4(argc, argv);
 argc = 0;

```

}

## % ./miniruby test/ruby/test\_fiber.rb Loaded suite test/ruby/test\_fiber Started …/tmp/a/lib/ruby/1.9/test/unit/assertions.rb:79: – control frame

## c:0004 p:0018 s:0017 b:0012 l:000011 d:000011 METHOD /tmp/a/lib/ruby/1.9/test/unit/assertions.rb:79 c:0003 p:0012 s:0005 b:0005 l:001120 d:000004 BLOCK test/ruby/test\_fiber.rb:10 c:0002 p:---- s:0004 b:0003 l:000002 d:000002 FINISH c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------

## DBG\> : “test/ruby/test\_fiber.rb:10:in `block in test\_normal’” – backtrace of native function call (Use addr2line) – 0x81148a5 0x806f963 0x806fa2b 0x80da420 0xb7f8f440 0x810a5fd 0x80826c8 0x810a591 0x80deaa6 0x810a980 0x80826c8 0x8082f23 0x80836eb 0x810bde4 0x810cc89 0x810fb16 0x8113174 0x810c3b7 0x810cad7 0x8119b98 0x8072c93 0x8076af8 0x8058120 0xb7df0ea8 0x8058031

[BUG] Segmentation fault  
ruby 1.9.0 (2007-12-04) [i686-linux]

zsh: abort (core dumped) ./miniruby test/ruby/test\_fiber.rb  
% gdb miniruby core.6261  
GNU gdb 6.4.90-debian  
Copyright © 2006 Free Software Foundation, Inc.  
GDB is free software, covered by the GNU General Public License, and you  
are  
welcome to change it and/or distribute copies of it under certain  
conditions.  
Type “show copying” to see the conditions.  
There is absolutely no warranty for GDB. Type “show warranty” for  
details.  
This GDB was configured as “i486-linux-gnu”…Using host libthread\_db  
library “/lib/tls/i686/cmov/libthread\_db.so.1”.

warning: Can’t read pathname for load map: Input/output error.  
Reading symbols from /lib/tls/i686/cmov/libpthread.so.0…done.  
Loaded symbols for /lib/tls/i686/cmov/libpthread.so.0  
Reading symbols from /lib/tls/i686/cmov/librt.so.1…done.  
Loaded symbols for /lib/tls/i686/cmov/librt.so.1  
Reading symbols from /lib/tls/i686/cmov/libdl.so.2…done.  
Loaded symbols for /lib/tls/i686/cmov/libdl.so.2  
Reading symbols from /lib/tls/i686/cmov/libcrypt.so.1…done.  
Loaded symbols for /lib/tls/i686/cmov/libcrypt.so.1  
Reading symbols from /lib/tls/i686/cmov/libm.so.6…done.  
Loaded symbols for /lib/tls/i686/cmov/libm.so.6  
Reading symbols from /lib/tls/i686/cmov/libc.so.6…done.  
Loaded symbols for /lib/tls/i686/cmov/libc.so.6  
Reading symbols from /lib/ld-linux.so.2…done.  
Loaded symbols for /lib/ld-linux.so.2  
Reading symbols from /tmp/a/lib/ruby/1.9/i686-linux/fiber.so…done.  
Loaded symbols for /tmp/a/lib/ruby/1.9/i686-linux/fiber.so  
Reading symbols from  
/tmp/a/lib/ruby/1.9/i686-linux/continuation.so…done.  
Loaded symbols for /tmp/a/lib/ruby/1.9/i686-linux/continuation.so  
Reading symbols from /lib/libgcc\_s.so.1…done.  
Loaded symbols for /lib/libgcc\_s.so.1  
Core was generated by `test/ruby/test\_fiber.rb test\_norma’.  
Program terminated with signal 6, Aborted.  
#0 0xb7f8f410 in ?? ()  
(gdb) bt  
#0 0xb7f8f410 in ?? ()  
#1 0xbfa33bfc in ?? ()  
#2 0x00000006 in ?? ()  
#3 0x00001875 in ?? ()  
#4 0xb7e04811 in raise () from /lib/tls/i686/cmov/libc.so.6  
#5 0xb7e05fb9 in abort () from /lib/tls/i686/cmov/libc.so.6  
#6 0x0806fa30 in rb\_bug (fmt=0x813593d “Segmentation fault”) at  
error.c:228  
#7 0x080da420 in sigsegv (sig=11) at signal.c:541  
#8 0xb7f8f440 in ?? ()  
#9 0x0000000b in ?? ()  
#10 0xbfa33d8c in ?? ()  
#11 0xbfa33e0c in ?? ()  
#12 0x0000000b in ?? ()  
#13 0x00000000 in ?? ()  
(gdb)

---

<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:** [December 7, 2007, 3:48pm UTC](https://www.ruby-forum.com/t/segv-by-test-ruby-test-fiber-rb/122172/2 "2007-12-07T15:48:04Z")

</div>

In article [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid),  
Tanaka A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> test/ruby/test\_fiber.rb e$B$G$9$,!"0J2\<$N$h$&$Ke(B insnhelper.ci  
> e$BFb$Ne(B rb\_ary\_new4 e$B8F$S=P$7$N$H$3$m$Ge(B GC e$B$rKh2s5/F0$9$k$h$&$Ke(B  
> e$B$9$k$H?t2s$K0lEY$/$i$$$N3d9g$Ge(B SEGV e$B$9$k$h$&$K$J$j$^$9!#e(B

e$B0J2\<$N$h$&$K$9$k$H\>I\>u$,$\*$5$^$j$^$9$,!"$I$&$G$9$+$M!#e(B  
e$B$J$s$H$bBP\>INEK!$N$h$&$J5$$b$7$^$9$,!#e(B

# Index: vm.c

— vm.c (revision 14113)  
+++ vm.c (working copy)  
@@ -1622,7 +1622,7 @@ rb\_thread\_mark(void \*ptr)  
(void \*)(th-\>stack + th-\>stack\_size);

```
   while (p < sp) {

```

- rb\_gc\_mark(\*p++);

- rb\_gc\_mark\_maybe(\*p++);  
}  
while (cfp != limit\_cfp) {  
rb\_gc\_mark(cfp-\>proc);

---

<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:** [December 7, 2007, 5:24pm UTC](https://www.ruby-forum.com/t/segv-by-test-ruby-test-fiber-rb/122172/3 "2007-12-07T17:24:59Z")

</div>

e$B1sF#$H?=$7$^$9!#e(B

07/12/07 e$B$Ke(B Tanaka A.[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) e$B$5$s$O=q$-$^$7$?e(B:

> > test/ruby/test\_fiber.rb e$B$G$9$,!"0J2\<$N$h$&$Ke(B insnhelper.ci  
> > e$BFb$Ne(B rb\_ary\_new4 e$B8F$S=P$7$N$H$3$m$Ge(B GC e$B$rKh2s5/F0$9$k$h$&$Ke(B  
> > e$B$9$k$H?t2s$K0lEY$/$i$$$N3d9g$Ge(B SEGV e$B$9$k$h$&$K$J$j$^$9!#e(B

vm\_invoke\_block e$B7PM3$Ge(B vm\_callee\_setup\_arg e$B$,8F$P$l$k;~$Oe(B  
sp e$B$,e(B argv e$B$N@hC\<$r;X$7$F$$$k$h$&$J$N$G$9$,!"e(B  
vm\_setup\_method e$B7PM3$Ge(B vm\_callee\_setup\_arg e$B$,8F$P$l$k;~$Oe(B  
sp e$B$,e(B argv e$B$N=\*C\<e(B (e$B$N\<!e(B)  
e$B$r;X$7$F$$$k$H;W$$$^$9!#e(B

e$B$3$N$?$ae(B vm\_setup\_method e$B7PM3$N\>l9g!"%9%?%C%/$N=\*C\<$rD6$($?e(B  
e$BHO0O$^$Ge(B mark e$B$5$l$F$7$^$C$F$$$k$N$G$O$J$$$+$H;W$$$^$9!#e(B  
(vm\_callee\_setup\_arg e$BCf$Ge(B th-\>mark\_stack\_len = iseq-\>arg\_size;  
e$B$7$F$$$k$?$ae(B)

e$B0J2\<$N%Q%C%A$Ge(B rb\_gc() e$B$rF~$l$F$b\>I\>u$,=P$J$/$J$j$^$7$?!#e(B

# reg\_cfp e$B$He(B cfp

e$B$NJQ?tL\>$N;H$$J,$1$K$O0UL#$,$"$k$s$G$7$g$&$+!#e(B

# Index: insnhelper.ci

— insnhelper.ci (revision 14130)  
+++ insnhelper.ci (working copy)  
@@ -429,7 +429,9 @@  
/\* TODO: eliminate it \*/  
GetISeqPtr(iseqval, iseq);

- cfp-\>sp -= argc;  
opt\_pc = vm\_callee\_setup\_arg(th, iseq, argc, rsp, &blockptr);

- cfp-\>sp += argc;  
sp = rsp + iseq-\>arg\_size;

---

<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:** [December 9, 2007, 5:58am UTC](https://www.ruby-forum.com/t/segv-by-test-ruby-test-fiber-rb/122172/4 "2007-12-09T05:58:13Z")

</div>

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

Yusuke ENDOH wrote:

> e$B0J2\<$N%Q%C%A$Ge(B rb\_gc() e$B$rF~$l$F$b\>I\>u$,=P$J$/$J$j$^$7$?!#e(B  
> e$B!!$I$&$b$"$j$,$H$&$4$6$$$^$9!%A4$/$=$NDL$j$G$9!%%9%?%C%/\>e$K$Oe(B  
> Ruby  
> e$B%_%V%8%’%/%H0J30CV$+$J$$$h$&$K$7$F$$$?$D$b$j$G$7$?$,!$$4;XE&$N$H$_$je(B  
> e$B7j$,$"$C$?$h$&$G$9!%e(B

e$B!!CV$+$J$$MM$K$7$F$$$?$N$O!$$^$5$Ke(B maybe e$B$K$7$Fe(B GC  
e$B$rCY$/$7$?$/$Je(B  
e$B$+$C$?$?$a$G$7$?!%e(B

> # reg\_cfp e$B$He(B cfp e$B$NJQ?tL\>$N;H$$J,$1$K$O0UL#$,$"$k$s$G$7$g$&$+!#e(B

e$B!!e(Bcfp e$B$O!$IaDL$K;H$&%m!\<%+%kJQ?t!$e(Breg\_cfp e$B$Oe(B VM  
e$B4X?tCf$GEP\>l$9$k!$e(B

#define REG\_CFP (reg\_cfp)

e$B$H@k8@$5$l$F$$$k$b$N$G$9!%K\Ev$Oe(B reg\_cfp  
e$B$C$FD\>@=q$$$A$c$$$1$J$$$se(B  
e$B$G$9$h$M$’!%e(B

---

<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:** [December 10, 2007, 4:49am UTC](https://www.ruby-forum.com/t/segv-by-test-ruby-test-fiber-rb/122172/5 "2007-12-10T04:49:40Z")

</div>

e$B1sF#$G$9!#e(B

07/12/09 e$B$Ke(B SASADA Koichi[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) e$B$5$s$O=q$-$^$7$?e(B:

> > e$B0J2\<$N%Q%C%A$Ge(B rb\_gc() e$B$rF~$l$F$b\>I\>u$,=P$J$/$J$j$^$7$?!#e(B
> 
> e$B!!$I$&$b$“$j$,$H$&$4$6$$$^$9!%A4$/$=$NDL$j$G$9!%%9%?%C%/\>e$K$Oe(B Ruby  
> e$B%_%V%8%'%/%H0J30CV$+$J$$$h$&$K$7$F$$$?$D$b$j$G$7$?$,!$$4;XE&$N$H$_$je(B  
> e$B7j$,$”$C$?$h$&$G$9!%e(B

r14156 e$B$r8+$^$7$?$,!“e(Bcfp-\>sp  
e$B$r=q$-49$($J$$$N$OM}M3$,$”$k$N$G$7$g$&$+!#e(B  
e$B$"$He(B sp e$B$NBeF~$r0\F0$7$?0U?^$,$o$+$j$^$;$s!#e(B

e$B$^$?!“8e$G5$$E$-$^$7$?$,e(B mark\_stack\_len = iseq-\>arg\_size;  
e$B$OIT==J,$@$He(B  
e$B;W$$$^$9!#e(Bsp e$B$,e(B argv e$B$N@hF,$N$H$-!”$=$3$+$ie(B  
iseq-\>arg\_size e$BJ,$7$+e(B mark  
e$B$5$l$^$;$s!#$=$N$?$ae(B argv e$B$ND9$5$,e(B iseq-\>arg\_size  
e$B$h$jD9$+$C$?\>l9g!"e(B  
e$BNc$N\>l=j$Ge(B gc e$B$,5/$-$?$ie(B argv e$B$NCf$NMWAG$,e(B gc  
e$B$5$l$F$7$^$&$H;W$$$^$9!#e(B

e$B**ZNc$G$9!#e(Brb\_gc()  
e$B$rNc$N\>l=j$XA^F~$7$F$\*$/$H0J2\<$GMn$A$^$9!#K\Ev$Ke(B  
e$B$3$N$;$$$GMn$A$F$$$k$N$+$I$&$+$OL$3NG’$G$9$,!#e(B**

 

$ ./ruby -e ’  
def foo  
yield(Object.new, Object.new, Object.new)  
end

## foo(&lambda {|\*a| p a }) ’ -e:6: – control frame ---------- c:0007 p:---- s:0016 b:0016 l:000015 d:000015 CFUNC :inspect c:0006 p:---- s:0014 b:0014 l:000013 d:000013 CFUNC 😛 c:0005 p:0010 s:0010 b:0010 l:000584 d:000009 BLOCK -e:6 c:0004 p:0042 s:0008 b:0008 l:000007 d:000007 METHOD -e:3 c:0003 p:0019 s:0005 b:0005 l:000584 d:000584 TOP -e:6 c:0002 p:---- s:0003 b:0003 l:000002 d:000002 FINISH :inherited c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------

## DBG\> : “-e:6:in `p'" DBG> : "-e:6:in `block in '” DBG\> : “-e:3:in `foo'" DBG> : "-e:6:in `'” – backtrace of native function call (Use addr2line) – 0x80eaa75 0x8108d83 0x8108e4b 0x80bc770 0xffffe440 0x8058424 0x8058473 0x805ac97 0x805b010 0x805b376 0x807d666 0x80f3d91 0x80eef96 0x80f3cf6 0x80e9935 0x805acf8 0x805b010 0x805b376 0x807d666 0x8069b01 0x806fcdc 0x80e135e 0x80e3093 0x80e5cd6 0x80e9334 0x80e966b 0x805a219 0x805e080 0x8057d70 0xb7de7ea8 0x8057c91

[BUG] Segmentation fault  
ruby 1.9.0 (2007-12-10) [i686-linux]

e$B%"%!\<%H$7$^$7$?e(B

e$B4_0c$$$@$C$?$i$9$\_$^$;$s$,!"e(Bvm\_callee\_setup\_arg  
e$B$K$h$C$F%9%?%C%/$,e(B  
(Qnil e$B0J30$Ge(B) e$B?-$S$k$N$Oe(B arg\_block  
e$B$@$1$@$H;W$$$^$9!#$b$7$=$&$J$ie(B  
vm\_callee\_setup\_arg e$B$r8F$V;~$Oe(B sp e$B$re(B argv  
e$B$N=C\<$N\<!$K$"$o$;$F$$-e(B  
(e$B$D$^$je(B vm\_invoke\_block e$B$Ne(B DEC\_SP(argc) e$B$r$d$a$ke(B)  
e$B!"e(Bmark\_stack\_len e$B$Oe(B  
e$B\>o$Ke(B 0 e$B$K$7$F$_$/$N$,NI$$$H;W$$$^$9!#e(B

e$B$H$j$“$($:!”$9$4$/0B0W$J%Q%C%A$G$9!#e(B

# Index: insnhelper.ci

— insnhelper.ci (revision 14169)  
+++ insnhelper.ci (working copy)  
@@ -115,7 +115,7 @@  
VALUE \* const dst = argv;  
int opt\_pc = 0;

- th-\>mark\_stack\_len = iseq-\>arg\_size;

- th-\>mark\_stack\_len = argc \> iseq-\>arg\_size ? argc : iseq-\>arg\_size;

- cfp-\>sp = rsp;

---

<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:** [December 12, 2007, 8:57pm UTC](https://www.ruby-forum.com/t/segv-by-test-ruby-test-fiber-rb/122172/6 "2007-12-12T20:57:43Z")

</div>

e$B1sF#$G$9!#e(B

07/12/11 e$B$Ke(B SASADA Koichi[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) e$B$5$s$O=q$-$^$7$?e(B:

> e$B!!$5$5$@$G$9!%e(B
> 
> Yusuke ENDOH wrote:
> 
> > r14156 e$B$r8+$^$7$?$,!“e(Bcfp-\>sp e$B$r=q$-49$($J$$$N$OM}M3$,$”$k$N$G$7$g$&$+!#e(B
> 
> e$B!!%9%?%C%/%H%C%W$N@h$K!$e(BVALUE e$B0J30$NCM$,F~$C$F$$$J$$$3$H$rJ]\>Z$G$-$Je(B  
> e$B$$$?$a$G$9!%e(B

e$B$&!\<$s!“$A$g$C$H0UL#$,$o$+$j$^$;$s$G$7$?!#$9$\_$^$;$s!#e(B  
e$B$d$C$Q$j5$$K$J$k$N$G!”;d$N9M$($F$$$k$3$H$r$b$&\>/$7@bL@$7$^$9!#e(B  
e$B;d$N4\*0c$$$@$C$?$iL5;k$7$F$b$i$C$F$b9=$$$^$;$s!#e(B

e$BNc$N\>l=j$Ge(B gc e$B$,5/$-$k$H$-$N%9%?%C%/$N\>u67$r?^\<($7$F$\_$^$9!#e(B

e$B$^$:!"e(Bvm\_invoke\_block e$B$be(B vm\_setup\_method e$B$be(B  
vm\_callee\_setup\_arg e$B$re(B  
e$B8F$VA0$Oe(Bargv e$B$,%9%?%C%/%H%C%W$KCV$+$l$F$$$k$H;W$$$^$9!#e(B

```
           sp
            v

```

-±-±-±-±-±-+  
… | argv… | ? ? ? ?  
-±-±-±-±-±-+

# e$B$5$5$@$5$s$,!V%9%?%C%/%H%C%W$N@h$K!$e(BVALUE

e$B0J30$NCM$,F~$C$F$$$J$$e(B

# e$B$3$H$rJ]\>Z$G$-$J$$!W$H$\*$C$7$c$C$F$$$k$N$O!"e(B?

e$B$NItJ,$K2?$,F~$C$Fe(B

# e$B$$$k$+$o$+$i$J$$$H$$$&$3$H$G$7$g$&$+!#$=$l$OF10U$7$^$9!#e(B

vm\_invoke\_block e$B$Oe(B DEC\_SP(argc) e$B$7$F$+$ie(B vm\_yield\_setup\_args  
e$B$r8F$Se(B  
e$B$=$NCf$Ge(B vm\_callee\_setup\_arg e$B$r8F$V$N$G!"Nc$N\>l=j$Ge(B gc  
e$B$,5/$-$?\>l9g$Oe(B

sp sp+mark\_stack\_len  
v v  
-±-±-±-±-±-+  
… | argv… | ? ? ? ?  
-±-±-±-±-±-+

e$B$H$$$&\>u67$K$J$j$^$9e(B (e$B4JC1$N$?$a!"e(Biseq-\>arg\_size e$B$He(B  
argc e$B$,Ey$7$$$He(B  
e$B$7$F$$$^$9e(B) e$B!#e(B  
e$B0lJ}e(B vm\_setup\_method e$B$O!"e(Bsp e$B$r$:$i$5$:e(B  
vm\_callee\_setup\_arg e$B$r8F$V$N$Ge(B

```
           sp sp+mark_stack_len
            v v

```

-±-±-±-±-±-+  
… | argv… | ? ? ? ?  
-±-±-±-±-±-+

e$B$H$$$&\>u67$Ge(B gc  
e$B$,=hM}$5$l$^$9!#EDCf$5$s$,$3$NLdBj$r;XE&$7$?;~E@$G$Oe(B  
? e$B$N$H$3$m$^$Ge(B mark\_maybe e$B$G$J$/e(B mark e$B$7$F$$$?$?$ae(B  
segv e$B$7$F$$$^$7$?!#e(B

vm\_invoke\_block e$B$He(B vm\_setup\_method e$B$G$3$s$JIw$Ke(B sp  
e$B$N07$$$,0[$J$k$N$Oe(B  
e$B0U?^E\*$J$s$G$7$g$&$+!#e(B

e$B;d$Oe(B sp e$B$N07$$$r6&DL$K$9$Y$-$H9M$(!"e(Bvm\_setup\_method  
e$B$G$be(B sp e$B$r$:$i$9e(B  
(cfp-\>sp -= argc;) e$B%Q%C%A$r=q$-$^$7$?!#e(B

---

<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:** [December 12, 2007, 8:00pm UTC](https://www.ruby-forum.com/t/segv-by-test-ruby-test-fiber-rb/122172/7 "2007-12-12T20:00:54Z")

</div>

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

Yusuke ENDOH wrote:

> r14156 e$B$r8+$^$7$?$,!“e(Bcfp-\>sp e$B$r=q$-49$($J$$$N$OM}M3$,$”$k$N$G$7$g$&$+!#e(B

e$B!!%9%?%C%/%H%C%W$N@h$K!$e(BVALUE  
e$B0J30$NCM$,F~$C$F$$$J$$$3$H$rJ]\>Z$G$-$Je(B  
e$B$$$?$a$G$9!%e(B

> e$B$"$He(B sp e$B$NBeF~$r0\F0$7$?0U?^$,$o$+$j$^$;$s!#e(B

e$B!!\<qL#$G$9!%e(B

> e$B$^$?!“8e$G5$$E$-$^$7$?$,e(B mark\_stack\_len = iseq-\>arg\_size; e$B$OIT==J,$@$He(B  
> e$B;W$$$^$9!#e(Bsp e$B$,e(B argv e$B$N@hF,$N$H$-!”$=$3$+$ie(B iseq-\>arg\_size e$BJ,$7$+e(B mark  
> e$B$5$l$^$;$s!#$=$N$?$ae(B argv e$B$ND9$5$,e(B iseq-\>arg\_size e$B$h$jD9$+$C$?\>l9g!"e(B  
> e$BNc$N\>l=j$Ge(B gc e$B$,5/$-$?$ie(B argv e$B$NCf$NMWAG$,e(B gc e$B$5$l$F$7$^$&$H;W$$$^$9!#e(B
> 
> e$B**ZNc$G$9!#e(Brb\_gc() e$B$rNc$N\>l=j$XA^F~$7$F$\*$/$H0J2\<$GMn$A$^$9!#K\Ev$Ke(B  
> e$B$3$N$;$$$GMn$A$F$$$k$N$+$I$&$+$OL$3NG’$G$9$,!#e(B**

e$B!!3N$+$K!%C1=c$Ke(B argc  
e$B$rB-$9$@$1$G$O%@%a$+$J$!!%87L)$K$O%@%a$G$9$he(B  
e$B$M$’!%J,4tA}$d$7$?$/$J$$$J$"!%e(B

> e$B4_0c$$$@$C$?$i$9$\_$^$;$s$,!"e(Bvm\_callee\_setup\_arg e$B$K$h$C$F%9%?%C%/$,e(B  
> (Qnil e$B0J30$Ge(B) e$B?-$S$k$N$Oe(B arg\_block e$B$@$1$@$H;W$$$^$9!#$b$7$=$&$J$ie(B  
> vm\_callee\_setup\_arg e$B$r8F$V;~$Oe(B sp e$B$re(B argv e$B$N=C\<$N\<!$K$"$o$;$F$$-e(B  
> (e$B$D$^$je(B vm\_invoke\_block e$B$Ne(B DEC\_SP(argc) e$B$r$d$a$ke(B) e$B!"e(Bmark\_stack\_len e$B$Oe(B  
> e$B\>o$Ke(B 0 e$B$K$7$F$_$/$N$,NI$$$H;W$$$^$9!#e(B

e$B!!\>e=R$7$?LdBj$K$h$j!$B?J,%@%a$G$9!%e(B

---

<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:** [December 18, 2007, 1:32pm UTC](https://www.ruby-forum.com/t/segv-by-test-ruby-test-fiber-rb/122172/8 "2007-12-18T13:32:55Z")

</div>

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

e$B!!JV;v$,CY$l$F$9$\_$^$;$s!%e(B

Yusuke ENDOH wrote:

> # e$B$3$H$rJ]\>Z$G$-$J$$!W$H$\*$C$7$c$C$F$$$k$N$O!"e(B? e$B$NItJ,$K2?$,F~$C$Fe(B
> 
> # e$B$$$k$+$o$+$i$J$$$H$$$&$3$H$G$7$g$&$+!#$=$l$OF10U$7$^$9!#e(B

e$B!!$O$$!%e(B

> vm\_invoke\_block e$B$He(B vm\_setup\_method e$B$G$3$s$JIw$Ke(B sp e$B$N07$$$,0[$J$k$N$Oe(B  
> e$B0U?^E\*$J$s$G$7$g$&$+!#e(B

e$B!!0U?^E\*$G$O$"$j$^$;$s!%$$$D$N4V$K$+$3$s$J$3$H$K$J$C$F$$$?!$$H$$$&46e(B  
e$B$8$G$9!%Nr;KE\*7P0^$H$7$F$O!$$3$3$N=hM}$r$/$C$D$1$?$N$,:G6a!$$H$$$&$Ne(B  
e$B$,$"$j$^$9!%e(B

> e$B;d$Oe(B sp e$B$N07$$$r6&DL$K$9$Y$-$H9M$(!"e(Bvm\_setup\_method e$B$G$be(B sp e$B$r$:$i$9e(B  
> (cfp-\>sp -= argc;) e$B%Q%C%A$r=q$-$^$7$?!#e(B

e$B!!$I$A$i$+$H$$$&$H!$e(Bsp e$B$,e(B argv  
e$B$N\>l=j$K$"$k$[$&$,?’!9$J0UL#$G4r$7$$e(B  
e$B$J$!!$$H;W$C$F$$$^$7$?!%e(B

(1) sp e$B$N7W;;$,0l2s8:$ke(B  
(2) gc\_mark\_maybe e$B$N2s?t$,8:$ke(B

e$B!!$$$d!$$I$A$i$b1F6AL5$$$KEy$7$$$s$G$9$,e(B…e$B!%$&!\<$s!$$I$&$7$h$&$+$J!%e(B
