MRIのコードを読む準備として、デバッガにブレークするメソッドをObjectクラスに定義します。
minirubyだけでは外部ライブラリを構築できませんので、object.cに直接書いてしまいます。
まず、以下のコードをobject.cのInit_Object()の前に追加します。
static VALUE debugbreak(int argc, VALUE *argv, VALUE obj) { __asm { int 3 } return Qnil; }
次に、Init_Object()関数の最後に以下の行を追加します。
rb_define_method(rb_cObject, "debugbreak", debugbreak, 0);
minirubyを再ビルドします。
これで、Object#debugbreakというメソッドが定義されます。
以下のRubyスクリプトをデバッガ内で実行すれば、1行目でデバッガにブレークできます。
debugbreak puts "hello world"
インタープリタの状態を調べたいところでこのメソッドを挿入すればよいわけです。