From: "KISHIMOTO, Makoto" Date: 2009-04-09T20:51:20+09:00 Subject: [ruby-dev:38299] Re: Hashのデフォルト値のブロックで無限ループするとcore きしもとです ruby-dev で続けていいですかね? On Wed, 8 Apr 2009 00:41:22 +0900 Nobuyoshi Nakada wrote: > At Tue, 7 Apr 2009 20:36:00 +0900, > SASADA Koichi wrote in [ruby-dev:38288]: > >  最初の例は,Ruby から C を呼び出して,そこから Ruby を呼んで,それが C > > に,というように,C 呼び出しが重なり,マシンスタックがオーバーフローしま > > す.C レベルでの,マシンスタックのオーバーフローは,真面目に検出するのは > > 大変なのでやっていない,ということじゃないかと思います.マシン・OS依存の > > 検出方法はあるけれど,まぁそこまで真面目にやっていない,んじゃなかったで > > したっけか(あれ,segv ハンドラ周りでなんかやってたっけ?). > > sigaltstack()のあるシステムでは検出しているはずです。ただし、ス > タックオーバーフローとそれ以外のSEGVの判別には微妙な部分もあるの > ですが、きしもとさんの環境が不明なのでなんともいえません。 難しい事情はだいたいわかりました。環境はこんな感じです。 $ uname -v FreeBSD 7.2-PRERELEASE #0 r190463M(以下略) config.log を見ると ac_cv_func_sigaltstack=yes とあります。