From: yamamoto madoka Date: 2003-06-27T15:40:17+09:00 Subject: [ruby-dev:20473] Re: 原因不明のSEGV 山本です。 > > こちらも、直っているようです。 > > 手元の環境では、再現しなくなりました。 > > [ruby-dev:20464]のパッチででしょうか。 > いえ、[ruby-dev:20465]、+1の方のパッチです。 二つ同時に進めてごちゃごちゃしてしまいすみません。 > > > > Program received signal SIGSEGV, Segmentation fault. > > > > [Switching to Thread 1024 (LWP 24325)] > > > > mark_locations_array (x=0x4616f2dc, n=0) at gc.c:505 > > > > 505 { > > > > (gdb) bt > > > > #0 mark_locations_array (x=0x4616f2dc, n=0) at gc.c:505 > > > > #1 0x08061349 in thread_mark (th=0x41f5dd54) at eval.c:8020 > > > > > > ここで、th->stk_ptrとth->stk_lenおよびth->stk_ptr[th->stk_len] > > > の値はどうなってるでしょうか。 > > > > (gdb) p th->stk_ptr > > $1 = (VALUE *) 0x461be5cc > > 0x4616f2dc-0x461be5cc=-324336 > 324336/4=81084 > うーん、なんだかxがヘンだ…。 > > > (gdb) p th->stk_len > > $2 = 2701 > > (gdb) p th->stk_ptr[th->stk_len] > > $3 = 0 > > 一つはみ出した分もちゃんとアクセスできてるわけですね。じゃ別に > +1してるのは問題ないのかな。 > あら、このパッチでこちらの再現はなくなったのですが、、