Skip to content

Conversation

@hrydgard
Copy link
Owner

@hrydgard hrydgard commented Jul 4, 2020

Does a few things:

  • Splits CORE_ERROR into CORE_BOOT_ERROR and CORE_RUNTIME_ERROR. The latter is intended for unrecoverable errors that happen at runtime. If recoverable, we can use CORE_STEPPING (as currently happens when hitting a bad memory access in the interpreter with bIgnoreBadMemAccess off.
  • Centralizes some of the memory access handling code in the interpreter
  • Formalizes the notion of core exceptions, adds a place to store information about them
  • Displays crash information, crash.prx from Exception handler - catch bad memory accesses by the JIT #11795 shows this in the interpreter with bIgnoreBadMemAccess off:

CRAS00921_00001

Note that this only works for interpreter right now. The JIT will get support for this later, partially for fastmem on with #11795 and later for fastmem off. I hope to also make some much improved crash reporting and ideally never have PPSSPP crash just because a game crashes.

@hrydgard hrydgard added this to the v1.11.0 milestone Jul 4, 2020
@zminhquanz
Copy link
Contributor

zminhquanz commented Jul 5, 2020

#10897 Is it workaround about this @hrydgard ?

@unknownbrackets
Copy link
Collaborator

This won't directly fix any crash in any game, but it may prevent game crashes from resulting in PPSSPP crashes, so it may make it easier to fix game crashes.

-[Unknown]

@hrydgard hrydgard force-pushed the error-handling-improvements branch from 2d676ca to 7dcd708 Compare July 12, 2020 13:25
@hrydgard hrydgard merged commit daf0990 into master Jul 12, 2020
@hrydgard hrydgard deleted the error-handling-improvements branch July 12, 2020 22:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants