Re: How to interpret crash reason


On Oct 28, 2020, at 6:53 AM, dhoerl via <dhoerl@...> wrote:

SIGSEGV(SEGV_ACCERR) at pthread_mutex_lock$VARIANT$armv81 + 0

SEGV_ACCERR means a crash where the address exists [is mapped] but doesn't allow that type of access. Usually it means something tried to write to a read-only address, but it could also mean trying to execute code from a page not mapped as executable.

My first thought is that the caller (IOSurfaceClientSetValue) is locking a mutex at a garbage address that happens to exist but is read-only.

But it's weird that there's no address given in the log, only the name of the function; if the crash really is at that address, it would mean that the page the function's on is not executable. But that doesn't make any sense.

In any case, it looks like this crash is deep inside a bunch of OS code having to do with JPEG codecs and GPU surfaces, so it's unlikely to involve your code. (Unless "FigPhotoCreateImageSurface" is a function in your app?) I'd submit a bug report to Apple.


Join to automatically receive all group messages.