Files
ppsspp/Core
Henrik Rydgård b507c9c797 Fix log-only cpu.breakpoint entries always pausing execution
The interpreter's hot-path breakpoint check in
RunUntilDowncountZeroWithChecks called Core_Break() unconditionally
whenever IsAddressBreakPoint() was true - true for any non-ignored
breakpoint, log-only included - instead of routing through
BreakpointManager::ExecBreakPoint(), which is what actually respects
BREAK_ACTION_LOG vs BREAK_ACTION_PAUSE. So a cpu.breakpoint.add with
log=true and enabled=false still paused on hit, contradicting its own
documented behavior.

The JIT backends and IR interpreter don't have this bug - they already
route through ExecBreakPoint() via JitBreakpoint()/IRRunBreakpoint()
and check the result for BREAK_ACTION_PAUSE. Only this one plain
interpreter loop had its own unconditional inline check instead.

Verified: a log-only breakpoint now logs without pausing (325 hits
logged, then execution continued past it normally); a normal enabled
breakpoint still pauses; cpu.stepOver (which relies on temporary
breakpoints, still correctly removed only when they actually pause)
still steps over calls correctly; all 49 unit tests pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GZq8ZtJmFY7bkX5FVkr3P9
(cherry picked from commit 726db5e4ea3651db0eb2de13c622c033dcc95699)
2026-08-14 09:27:21 +02:00
..
2026-08-11 20:12:10 +02:00
2026-06-02 11:15:08 +02:00
2026-08-09 22:10:54 +02:00
2026-07-29 16:27:33 +02:00
2026-08-11 20:12:10 +02:00
2026-08-05 09:48:51 +02:00
2026-08-05 00:15:56 +02:00
2026-08-11 20:14:01 +02:00
2025-03-27 14:26:48 +01:00
…
2026-07-29 16:27:33 +02:00
2026-08-11 15:43:48 +02:00
…
2026-07-27 18:37:28 +02:00