Skip to content

条件付きステップ実行の挙動を改善#126

Merged
vain0x merged 3 commits intomainfrom
feat-step
Nov 10, 2025
Merged

条件付きステップ実行の挙動を改善#126
vain0x merged 3 commits intomainfrom
feat-step

Conversation

@vain0x
Copy link
Copy Markdown
Owner

@vain0x vain0x commented Nov 9, 2025

条件付きステップ実行 (次飛・脱出) がひっかかる (ボタンを押してもすぐに動作しないことがある) 問題を改善します

方法

  • 条件を満たす (サブルーチンのレベル sublev が一定の値以下になる) まで「次行」(ステップイン)を自動で繰り返すという部分は同じ
  • いままではHSP側がステップイン後に一時停止した直後に行っていた
    • dbgnotice の直後に runmode を変更しても、HSP側がメッセージ待ち状態に入ってしまい、その待機が即座に解除されないことがあった (おそらく)
    • 参考: hsp3win.cppMsgWaitForMultipleObjects の部分
  • HSPCTX::msgfunc を差し替える実装に変更した
    • ステップイン後に止まる際に msgfunc が呼ばれるので、そこで再びステップインする
      • runmode が RUN 以外になるので上記の待機状態を回避できる (はず)
    • 参考: hsp3code.cppcode_dbgtrace の部分

NULL を指定すると実行中のスレッドにメッセージが送られるので、
HSP のウィンドウにメッセージを送るのと同じ効果がある
@vain0x vain0x added this to the v2.3.0 milestone Nov 9, 2025
@vain0x vain0x merged commit 2afaef3 into main Nov 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant