mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
The Win32 debugger dialogs mutate CPU-thread-owned state (breakpoints, symbol map, registers, memory, kernel threads) directly from the GUI thread with no synchronization, same problem the WebSocket debugger had. Route all of these through Core_RunOnCPUThread instead, following the same pattern used there. Also drops two forced-pause (Core_Break/Core_WaitInactive/Core_Resume) dances in CtrlMemView::onChar and DumpMemoryWindow's dump handler, now unnecessary since Core_RunOnCPUThread works whether the CPU is running or already stepping. Modal dialogs (MessageBox, InputBox_GetString, BreakpointWindow::exec, etc.) are kept outside any queued callback so they never block the CPU thread on user input. Pure reads/painting (disassembly formatting, search, list reloads, onPaint) are intentionally left as-is for now. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Hqm11k99viLfbJm2MkH4BH
Just open the MSVC project file and build.