Проверить штатный выход MAME и загрузку state в DAP
This commit is contained in:
@@ -214,6 +214,8 @@ pyenv exec python tests/sdbg/run_mame_probe.py
|
||||
pyenv exec python tests/sdbg/run_mame_probe.py --bridge
|
||||
pyenv exec python tests/sdbg/run_mame_probe.py --bridge --banked
|
||||
pyenv exec python tests/sdbg/run_mame_probe.py --bridge --banked --server
|
||||
pyenv exec python tests/sdbg/run_mame_probe.py --banked --bridge --server --lifecycle-exit
|
||||
pyenv exec python tests/sdbg/run_mame_probe.py --banked --bridge --server --lifecycle-load
|
||||
pyenv exec python tests/sdbg/run_mame_probe.py --banked --launcher
|
||||
pyenv exec python tests/sdbg/run_mame_probe.py --banked --launcher --native-debugger
|
||||
pyenv exec python tests/sdbg/run_mame_probe.py --banked --launcher --source-step
|
||||
@@ -273,8 +275,18 @@ VS Code запустил сборку SprPoP и остановился в `src/s
|
||||
с `sdbg` и опциональным `osx` debugger provider.
|
||||
Отдельная проба `SIGTERM` остановленному MAME не дала DAP `terminated` за
|
||||
15 секунд; причина (обработка сигнала самим MAME или путь закрытия сессии)
|
||||
ещё не установлена. Штатное закрытие окна и state load не прошли отдельный
|
||||
живой тест.
|
||||
ещё не установлена. Это отдельный OS-signal путь, не равный закрытию окна.
|
||||
|
||||
Живой lifecycle-пробник на банковой программе теперь прошёл с `sdbg` и
|
||||
опциональным `osx` provider. На остановке в `main` Lua вызвал
|
||||
`machine:exit()`: MAME вышел с кодом 0, DAP получил `terminated`, старый
|
||||
session server отверг запрос. Закрытие SDL3-окна в MAME вызывает тот же
|
||||
`schedule_exit()`; физический клик по кнопке окна не автоматизировался.
|
||||
При save/load state пробник после сохранения поставил банковую точку,
|
||||
загрузил сохранённое состояние и получил `terminated`; post-load проверка
|
||||
`bplist()` показала ноль оставшихся точек, старый session server отверг
|
||||
запрос. Для save/load пробник продолжает CPU после планирования операции:
|
||||
эти команды MAME сами не выводят CPU из debugger stop-loop.
|
||||
|
||||
Это репро доступности механизма, а не полный benchmark или проверка всех
|
||||
runtime/mapping/lifecycle. Отдельная публикация debug-библиотек требует
|
||||
@@ -332,7 +344,7 @@ Crash reports в 19:22/19:23 относились к неподдержанно
|
||||
строит проверенное условие через I/O port. После штатных прогонов в 20:43 и
|
||||
позже новых `mame.arm-*.ips` не появилось.
|
||||
|
||||
Далее по плану: проверить graceful exit/state load живым репро, сделать
|
||||
Далее по плану: исследовать отдельно OS-signal путь `SIGTERM`, сделать
|
||||
MCP-адаптер, безопасный restart и расширенные выражения. VSIX уже упакован;
|
||||
для IDE ещё нужны Run-команда, выбор профиля
|
||||
сборки/данных и расширенная диагностика assembler/linker.
|
||||
|
||||
@@ -680,8 +680,13 @@ exit/reset/reload инвалидируют состояние; потеря кл
|
||||
|
||||
Текущая реализация опрашивает backend и при остановленном CPU: потеря MAME
|
||||
переводит DAP в `terminated` (проверено живым пробником с внезапным выходом).
|
||||
Reset/state load обработаны notifier плагина, инвалидация проверена host-тестом;
|
||||
штатное закрытие MAME и загрузка state требуют отдельных живых проверок.
|
||||
Проверенные живые lifecycle-пробники вызывают штатный `schedule_exit()` через
|
||||
Lua `machine:exit()` и реальный save/load state при остановке в `main`:
|
||||
оба завершают DAP, post-load удаляет старые точки. SDL3-событие закрытия
|
||||
окна использует тот же `schedule_exit()`; прямой UI-клик не автоматизировался.
|
||||
Reset по-прежнему требует безопасного отдельного репро. `SIGTERM`
|
||||
остановленному процессу MAME пока не дал DAP `terminated` за 15 секунд;
|
||||
это отдельный OS-signal путь, не проверка штатного выхода.
|
||||
|
||||
### Этап 3 — полезная CLI/MCP-отладка и логи
|
||||
|
||||
|
||||
@@ -101,9 +101,12 @@ service-точка `main` и вводится `a:\\HELLO.EXE`. После сов
|
||||
|
||||
При reset/state load или потере MAME остановленная сессия становится
|
||||
недействительной и DAP завершает её; для новой отладки запускайте F5 заново.
|
||||
Проверен сценарий внезапного завершения собственного MAME во время остановки
|
||||
в `main`. Отдельный живой тест штатного закрытия окна и загрузки state ещё
|
||||
предстоит выполнить.
|
||||
Проверены внезапная потеря собственного MAME, штатный `machine:exit()` и
|
||||
реальная загрузка state при остановке в `main`: каждый раз DAP получает
|
||||
`terminated`, после load старые точки удалены. Закрытие SDL3-окна MAME
|
||||
вызывает тот же `schedule_exit()`, что `machine:exit()`; прямой UI-клик
|
||||
в пробнике не выполнялся. Эти проверки прошли с `sdbg` и опциональным
|
||||
`osx` debugger provider.
|
||||
|
||||
`dssTimeout` задаёт предельное время ожидания prompt (30 эмулируемых секунд).
|
||||
`launchAt` можно задать как необязательную нижнюю границу времени запуска;
|
||||
|
||||
Reference in New Issue
Block a user