ところが、Fiddle::Closure::BlockCaller はRubyのオブジェクトなので、気をつけないとガーベッジコレクションに回収されてしまいます。ガーベッジコレクションに回収されると、メモリが開放されてしまい、呼び出すことができなくなります。そしてSegmentation Faultが発生します。 Rubyでは関数の代わりにブロックがあります。ブロックを利用して、動的にFiddle::Closure::BlockCallerのインスタンスを生成するということやりたくなるはずで、この際に注意してオブジェクトへの参照を残しておかないと、GCがせっかく生成した回収していきます。具体的には、レシーバのポインタのインスタンス変数にFiddle::Closure::BlockCallerを追加してやるなどします。 普段Rubyを使う上で、GCやメモリ管理など考えないので、かなり注意してい