From: "NAKAMURA, Hiroshi" Date: 2002-03-11T14:27:58+09:00 Subject: [ruby-dev:16315] Re: Rite debug API (was Re: No trace_func event at if-elsif-else line) なひです。 > From: Yukihiro Matsumoto [mailto:matz@ruby-lang.org] > Sent: Monday, March 11, 2002 1:56 PM > |> でも、これって結局ふつうのソースコードデバッガがやってること > |> ですよね。 > | > |Cの世界ならそうだと思います。Javaはどうなんでしょう。 > |JVMDI(*)の実装って、VM作る人がやってるんじゃないのかな? > |IDE作る人じゃないですよね。 > > Cとかの世界でもいちおうデバッガのことを考えていると思います > し,わたしとしても「私は勝手に作るからデバッガはそれに追随し > ろ」というつもりはないです。断絶したいわけじゃないし。 よくわからなくなってきちゃいました。 「ふつうのソースコードデバッガがやってることですよね (だからRiteのソースコードデバッガもそうすべき)」 と読んじゃったんですが、違いました? なひはそれに対して「少なくともJavaではふつうじゃない」 と書いたのであって、断絶とか「だからVM側で作ってよ」とか 述べているつもりはありません。Javaと同じモデルがいいかどうか まだ誰にもわからないし。 > が,デバッガになにが要求されているかまだわからない時点で構文 > 木に対してうんぬんという妙に具体的な注文をつけられるのが望ま > しいのかというとかなり疑問です。 バイトコードじゃなければ構文木、は具体的かなぁ。 とは思うものの、「仕様の前に実装について話をするな」 ということであればその通りだと思います。VMが見えていない (まだこれから)という状況で、変に先走らないほうが 戦略的にもよさそうです。 というわけで、VMのdebug APIの仕様として欲しいもの。 結局は(())に書いたことと同じなんですが、 まず「ブレークポイントの設定」「コンテキスト情報とデータの取得」 です。スレッド関連はよくわかんないのでとりあえず保留。 また、(())では「構文木の書き換え」とか書いてあって、 これが今回の騒動の発端だと思いますが、これはとりあえず 忘れてください。これの代わりのdebug APIへのリクエストが 「ステップ実行」です(結局構文木うんぬんもこれのため)。 debuggeeで1つの命令を実行してdebuggerに制御を返してくれる 命令が欲しいです(ここで1ノードとか1ワードとか言うと またややこしくなる)。 この辺についてはどうでしょう。問題になるとするとステップ実行かな? と思ってます。 # ちなみに、単なるいちユーザのリクエストなので、まつもとさんは # これを気にせずさっくり無視することができます。