追加案: デバッガでブレークポイントを設けられるようにする

Issue #221 new
k4nagatsuki repo owner created an issue

表題通りですがいくつか課題があります。

  • 実行中でないイベントを選択して開けなければならない
  • 設けたブレークポイントをどのように記録するか。CWXパスで記録すると、実行時に1コンテント毎にCWXパスの探索が発生し、実行時間の障害にならないか(デバッグに不可欠なコストとして許容するか?)。

Comments (10)

  1. 権兵衛 七篠

    ブレークポイント敷設の際に、条件つきブレークポイントと言うのは可能でしょうか?

    つまり、

    • 状態変数が一定の値になったとき
    • クーポンの所持条件を満たした場合
    • 睡眠や麻痺などの特定の状態において .....など、条件付で発動するブレークポイントです。

    デバグ窓より保存できる状態ファイルに書き出された状態から発動条件を流用できたりすれば 状態ファイルを提供してもらい解析に当てるといった、デバッグの強力な武器になると思います。

  2. k4nagatsuki reporter

    アイデアありがとうございます。助かります。

    たしかにそうした機能があるとありがたいですね。能力判定系のシナリオの解析で散々苦労した身でなぜ思いつかなかったのか不思議なくらいです。

    状態ファイルへの保存も含めて実現を目指したいです。

  3. k4nagatsuki reporter

    とりあえずシンプルなブレークポイントを設けられるようにしました。

    以下が未実装です。

    • シナリオごとにブレークポイントを保存できるようにする→状態の保存機能を使うか、あるいは別に保存するべきか?(状態のロードを行うと現在の実行状況も変わってしまうので)
    • メニュー(アクセラレータキー付き)からブレークポイントを設定する。現状キーボードで設定する手段がない
    • 全てのブレークポイントをクリアする機能
    • ブレークポイントを一時無効にするスイッチ
    • 七篠氏提案による条件付きブレークポイント
  4. k4nagatsuki reporter

    デバッガを非表示にすれば自動的に無効になるので、一時無効のスイッチはいらないかもしれません。

  5. k4nagatsuki reporter

    デバッグの手順を考えると、宿ごとよりはエンジン全体でシナリオごとにブレーク情報を保存した方がよさそうです。

    また、JPDCイメージのようにブレークポイント情報のあるシナリオを一覧表示し、シナリオごとにまとめて削除する機能も必要です。

  6. k4nagatsuki reporter

    メニューとクリア機能を追加。以下が未着手です。

    • ブレークポイントを一時無効にするスイッチ
    • 七篠氏提案による条件付きブレークポイント
  7. k4nagatsuki reporter
    • removed milestone

    条件付きブレークの、条件部分のデータをどのように保存するかで悩んでいます。将来変数同士で演算を行えるようにした時の流用に耐えるような形式で保存した方がいいと考えていて、例えば以下のように式をそのまま保存する形式が考えられます。

    <Expression>Step["ステップA"] = 5</Expression>
    

    この方式でデータを保存して機能を実現するには式の構文解析を行う必要がありますが面倒です。

    とりあえずブレークポイント機能をつけるという最初の目標は達成しているので、目標マイルストーンを外します。

  8. Log in to comment