[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:1095

From: Tadashi Saito <shiba mail2.accsnet.ne.jp>
Date: Wed, 25 Oct 2006 00:15:20 +0900
Subject: [yarv-dev:1095] segv when stack level is too deep

こんばんは、斎藤です。

当方以下のような環境です。

$ ruby-yarv -v
ruby 2.0.0 (Base: Ruby 1.9.0 2006-04-08) [i686-linux]
YARVCore 0.4.1 Rev: 545 (2006-09-01) [opts: [direct threaded code] [inline method cache] ]

そこで以下のようなプログラムを走らせると、

$ cat evalself.rb
eval File.read($0)
$ ruby-yarv evalself.rb
# 略

落ちました。出て来たメッセージは本当に長くて単調なので、略して引用します。
まず最初はこんな感じです。

(eval):1: -- stack frame ------------
0000 (0x40366008): 00000004
0001 (0x4036600c): 00000005
0002 (0x40366010): 00000004
0003 (0x40366014): 00000001 <- lfp
0004 (0x40366018): 403642d8
0005 (0x4036601c): 4033ca08
0006 (0x40366020): 00000004
0007 (0x40366024): 00000001
0008 (0x40366028): 00000004
0009 (0x4036602c): 00000001
0010 (0x40366030): 40366015 (= 3)
0011 (0x40366034): 403642d8
0012 (0x40366038): 4033c88c
0013 (0x4036603c): 00000004
0014 (0x40366040): 00000001
0015 (0x40366044): 00000004
0016 (0x40366048): 00000001
0017 (0x4036604c): 40366031 (= 10)
0018 (0x40366050): 403642d8
0019 (0x40366054): 4033c710
0020 (0x40366058): 00000004
0021 (0x4036605c): 00000001
0022 (0x40366060): 00000004
0023 (0x40366064): 00000001
0024 (0x40366068): 4036604d (= 17)
0025 (0x4036606c): 403642d8
0026 (0x40366070): 4033c594
0027 (0x40366074): 00000004
0028 (0x40366078): 00000001
0029 (0x4036607c): 00000004
0030 (0x40366080): 00000001
0031 (0x40366084): 40366069 (= 24)
0032 (0x40366088): 403642d8
0033 (0x4036608c): 4033c418
0034 (0x40366090): 00000004
0035 (0x40366094): 00000001
0036 (0x40366098): 00000004
0037 (0x4036609c): 00000001
0038 (0x403660a0): 40366085 (= 31)
0039 (0x403660a4): 403642d8
0040 (0x403660a8): 4033c29c
0041 (0x403660ac): 00000004
0042 (0x403660b0): 00000001
0043 (0x403660b4): 00000004
0044 (0x403660b8): 00000001

似たようなものが16000回以上続きます。stack frameの最後はこうです。

16657 (0x4037644c): 403642d8
16658 (0x40376450): 4043cb9c
16659 (0x40376454): 00000004
16660 (0x40376458): 00000001
16661 (0x4037645c): 00000004
16662 (0x40376460): 00000001
16663 (0x40376464): 40376449 (= 16656)
16664 (0x40376468): 403642d8
16665 (0x4037646c): 4043ca20
16666 (0x40376470): 00000004
16667 (0x40376474): 00000001
16668 (0x40376478): 00000004
16669 (0x4037647c): 00000001
16670 (0x40376480): 40376465 (= 16663)
16671 (0x40376484): 403642d8
16672 (0x40376488): 00000000
16673 (0x4037648c): 403764b4
16674 (0x40376490): 403764b4
16675 (0x40376494): 00000000
16676 (0x40376498): faffff61
16677 (0x4037649c): 4035754c <- dfp
16678 (0x403764a0): 403764b0 <- bp
16679 (0x403764a4): 4043c728

続いてcontrol frame。

-- control frame ----------
c:7149 p:0022 s:16680 b:16678 l:000003 d:006677 EVAL   (eval):1
c:7148 p:---- s:16677 b:16677 l:006676 d:006676 FINISH
c:7147 p:---- s:16675 b:16675 l:006674 d:006674 CFUNC  :eval
c:7146 p:0022 s:16671 b:16671 l:000003 d:006670 EVAL   (eval):1
c:7145 p:---- s:16670 b:16670 l:006669 d:006669 FINISH
c:7144 p:---- s:16668 b:16668 l:006667 d:006667 CFUNC  :eval
c:7143 p:0022 s:16664 b:16664 l:000003 d:006663 EVAL   (eval):1
c:7142 p:---- s:16663 b:16663 l:006662 d:006662 FINISH
c:7141 p:---- s:16661 b:16661 l:006660 d:006660 CFUNC  :eval
c:7140 p:0022 s:16657 b:16657 l:000003 d:006656 EVAL   (eval):1
c:7139 p:---- s:16656 b:16656 l:006655 d:006655 FINISH
c:7138 p:---- s:16654 b:16654 l:006653 d:006653 CFUNC  :eval
c:7137 p:0022 s:16650 b:16650 l:000003 d:006649 EVAL   (eval):1
c:7136 p:---- s:16649 b:16649 l:006648 d:006648 FINISH
c:7135 p:---- s:16647 b:16647 l:006646 d:006646 CFUNC  :eval
c:7134 p:0022 s:16643 b:16643 l:000003 d:006642 EVAL   (eval):1
c:7133 p:---- s:16642 b:16642 l:006641 d:006641 FINISH
c:7132 p:---- s:16640 b:16640 l:006639 d:006639 CFUNC  :eval
c:7131 p:0022 s:16636 b:16636 l:000003 d:006635 EVAL   (eval):1
c:7130 p:---- s:16635 b:16635 l:006634 d:006634 FINISH
c:7129 p:---- s:16633 b:16633 l:006632 d:006632 CFUNC  :eval
c:7128 p:0022 s:16629 b:16629 l:000003 d:006628 EVAL   (eval):1

それの最後はこうです(やっぱり意味ないかも)。

c:0023 p:---- s:0052 b:0052 l:000051 d:000051 FINISH
c:0022 p:---- s:0050 b:0050 l:000049 d:000049 CFUNC  :eval
c:0021 p:0022 s:0046 b:0046 l:000003 d:000045 EVAL   (eval):1
c:0020 p:---- s:0045 b:0045 l:000044 d:000044 FINISH
c:0019 p:---- s:0043 b:0043 l:000042 d:000042 CFUNC  :eval
c:0018 p:0022 s:0039 b:0039 l:000003 d:000038 EVAL   (eval):1
c:0017 p:---- s:0038 b:0038 l:000037 d:000037 FINISH
c:0016 p:---- s:0036 b:0036 l:000035 d:000035 CFUNC  :eval
c:0015 p:0022 s:0032 b:0032 l:000003 d:000031 EVAL   (eval):1
c:0014 p:---- s:0031 b:0031 l:000030 d:000030 FINISH
c:0013 p:---- s:0029 b:0029 l:000028 d:000028 CFUNC  :eval
c:0012 p:0022 s:0025 b:0025 l:000003 d:000024 EVAL   (eval):1
c:0011 p:---- s:0024 b:0024 l:000023 d:000023 FINISH
c:0010 p:---- s:0022 b:0022 l:000021 d:000021 CFUNC  :eval
c:0009 p:0022 s:0018 b:0018 l:000003 d:000017 EVAL   (eval):1
c:0008 p:---- s:0017 b:0017 l:000016 d:000016 FINISH
c:0007 p:---- s:0015 b:0015 l:000014 d:000014 CFUNC  :eval
c:0006 p:0022 s:0011 b:0011 l:000003 d:000010 EVAL   (eval):1
c:0005 p:---- s:0010 b:0010 l:000009 d:000009 FINISH
c:0004 p:---- s:0008 b:0008 l:000007 d:000007 CFUNC  :eval
c:0003 p:0022 s:0004 b:0004 l:000003 d:000003 TOP    evalself.rb:1
c:0002 p:---- s:0002 b:0002 l:000001 d:000001 FINISH
c:0001 p:---- s:0000 b:-001 l:000000 d:000000 ------

あとは

DBG> : "(eval):1:in `eval'"
DBG> : "(eval):1:in `<main>'"

が4700行以上繰り返されて、ほんとの最後が

DBG> : "(eval):1:in `eval'"
DBG> : "(eval):1:in `<main>'"
DBG> : "evalself.rb:1:in `eval'"
DBG> : "evalself.rb:1:in `<main>'"
[BUG] Segmentation fault
ruby 2.0.0 (2006-04-08) [i686-linux]

でした。

# 無駄ならほんとごめんなさい

ただ見てのとおりtrunkの方なので、parallelの方では関係ないかもしれません。
しかしparallelのmakeが通らないため、ちょっと確認できませんでした。
もし必要ならば、また後で試してみます。とりあえず報告させてもらいました。

-- 
斎藤ただし

--
ML: yarv-dev quickml.atdot.net
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

->    1095 2006-10-25 00:15 [shiba mail2.accsnet.] segv when stack level is too deep       
      1096 2006-10-25 00:30 ┣[shiba mail2.accsnet.]                                       
      1098 2006-11-04 12:42 ┗[ko1 atdot.net       ]                                       
      1099 2006-11-04 17:45  ┣[shudo computer.org  ]                                     
      1100 2006-11-04 17:53  ┃┗[ko1 atdot.net       ]                                   
      1101 2006-11-04 20:34  ┃ ┗[shudo computer.org  ]                                 
      1102 2006-11-04 20:49  ┃  ┗[ko1 atdot.net       ]                               
      1103 2006-11-09 19:32  ┗[shiba mail2.accsnet.]