なひです。どうせ一年も先の話なのでのんびりと。

> From: Yukihiro Matsumoto [mailto:matz / ruby-lang.org] 
> Sent: Wednesday, February 27, 2002 1:14 PM

> |実行の制御に最低限必須なのが、ブレークポイントの設定と
> |構文木(になるんですかね?Ruby VMがどうなるか
> |なひはよく理解できてません)の書き換えです。
> 
> ブレークポイントは普通のバイナリ(マシン語)と同様にワードを置
> 換えるという手が使えるんじゃないかと思います。

構文木レベルではdebug APIを用意せず、構文木→バイトコードを
作った後のバイトコードの置き換えレベルでしかdebug APIを
提供しない予定、ということでしょうか。
VMに埋まる側のdebuggeeモジュールを作るのは
(誰か知りませんが)一人だけでしょうが、結構辛そうだなぁ。

こないだなすらぐで咳さんと会った時に想像されるVM像を
いろいろ聴いたんですが、できれば構文木の任意の場所に
aBreakPointExceptionをraiseするノードを打ち込んで、
それを拾うのが楽でいいなぁ(rescueしたあとで
resumeできないといけないんだけど!)。想定されるRiteの
VMでは無理ですか?

> また、ソースコー
> ドの情報はバイトコード中に持たないで必要に応じて計算で得るこ
> とで普段の速度の犠牲を最小限にできると思います。

ソースコードそのものをRiteが管理してくれることはなくなる、
ということですよね。いずれにせよファイル名と行番号情報を
得るためのなんらかの方法は提供されると思うので、その辺は
なんとでもなりそうです。

# Riteでは例外発生時にファイル名と行番号が
# 表示されなくなったりして。。。by咳

> |Riteでのスレッドの扱いが理解できてないなひには
> |現在はコメントできません。native thread対応なんでしたっけ?
> 
> そのつもりです。

スレッドデッドロック時にもデバッグできるようにしたいですねぇ。
現行debug APIじゃ不可能ですが、レアケースでも、本当に調べたい
のはそういうレアケースだし。

# 現行debug APIでは、前になひが作りこんじゃったように、
# デバッガ自身がdeadlockを引き起こしたりする。
# もちろんデバッガのバグですけど。