福間@福岡 です。

2つめはruby-devにふります。

記事 <199902161203.VAA05794 / hanare00.math.sci.hokudai.ac.jp> において、
gotoken / math.sci.hokudai.ac.jp (GOTO Kentaro) さんは書きました :

>   2. ふりかえると以前からですが,次のが Segmentation Fault します.
>      ------------------------------------
>      class MyErr < Exception
>        def initialize(v = nil)
> 	 @msg = "#{v.to_s}!?" if v
>        end
> 
>        def to_s
> 	 retunn @msg if @msg
         ^^^^^^
ここを return に直すと大丈夫でした。
例外の処理中に例外が発生すると死ぬようですね。

  class Exception
    def to_s
      raise
    end
  end
  
  unknown_method()   #==> SEGV


これとは直接無関係ですが、

  ruby -T5 -e ''

とかやると無限再帰に陥ってしまい、メモリを食い潰して落ちます。
これも、例外の発生処理中に例外を再発生させてしまうことが原因のようです。

---
 Yasuhiro Fukuma (福間 康弘) as Yasu.F @ Kitakyushu.Fukuoka.Japan
 Web site: http://www8.big.or.jp/~yasuf/
 “君の主人公は君だ。”