From 63b18687f073deeac7c1aeabb386ffd4d1a89175 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Fri, 24 Nov 2023 22:27:43 -0800 Subject: [PATCH] Test: Allow ROM tester to be debugged --- src/platform/test/rom-test-main.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/platform/test/rom-test-main.c b/src/platform/test/rom-test-main.c index 28621389b..8c0d4fd3d 100644 --- a/src/platform/test/rom-test-main.c +++ b/src/platform/test/rom-test-main.c @@ -139,6 +139,19 @@ int main(int argc, char * argv[]) { goto loadError; } +#ifdef USE_DEBUGGERS + struct mDebugger debugger; + mDebuggerInit(&debugger); + bool hasDebugger = mArgumentsApplyDebugger(&args, core, &debugger); + + if (hasDebugger) { + mDebuggerAttach(&debugger, core); + mDebuggerEnter(&debugger, DEBUGGER_ENTER_MANUAL, NULL); + } else { + mDebuggerDeinit(&debugger); + } +#endif + core->reset(core); mArgumentsApplyFileLoads(&args, core); @@ -152,11 +165,25 @@ int main(int argc, char * argv[]) { savestate->close(savestate); } +#ifdef USE_DEBUGGERS + if (hasDebugger) { + do { + mDebuggerRun(&debugger); + } while (!_dispatchExiting && debugger.state != DEBUGGER_SHUTDOWN); + } else +#endif do { core->runLoop(core); } while (!_dispatchExiting); core->unloadROM(core); + +#ifdef USE_DEBUGGERS + if (hasDebugger) { + core->detachDebugger(core); + mDebuggerDeinit(&debugger); + } +#endif cleanExit = true; loadError: