Decode Mach EXC_RESOURCE and EXC_GUARD exception reasons

Change-Id: Iafe85ae2149961f13ba44664c99e18d92d1ec654
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/4172753
Reviewed-by: Mark Mentovai <mark@chromium.org>
This commit is contained in:
Robert Sesek 2023-01-17 10:50:44 -05:00
parent 1eafed6806
commit bae7147e78
2 changed files with 12 additions and 0 deletions

View File

@ -65,6 +65,10 @@ typedef enum {
MD_EXCEPTION_MAC_MACH_SYSCALL = 8, MD_EXCEPTION_MAC_MACH_SYSCALL = 8,
/* EXC_MACH_SYSCALL */ /* EXC_MACH_SYSCALL */
MD_EXCEPTION_MAC_RPC_ALERT = 9, MD_EXCEPTION_MAC_RPC_ALERT = 9,
/* EXC_RESOURCE */
MD_EXCEPTION_MAC_RESOURCE = 11,
/* EXC_GUARD */
MD_EXCEPTION_MAC_GUARD = 12,
/* EXC_RPC_ALERT */ /* EXC_RPC_ALERT */
MD_EXCEPTION_MAC_SIMULATED = 0x43507378, MD_EXCEPTION_MAC_SIMULATED = 0x43507378,
/* Fake exception code used by Crashpad's SimulateCrash ('CPsx'). */ /* Fake exception code used by Crashpad's SimulateCrash ('CPsx'). */

View File

@ -1243,6 +1243,14 @@ string MinidumpProcessor::GetCrashReason(Minidump* dump, uint64_t* address,
reason = "EXC_RPC_ALERT / "; reason = "EXC_RPC_ALERT / ";
reason.append(flags_string); reason.append(flags_string);
break; break;
case MD_EXCEPTION_MAC_RESOURCE:
reason = "EXC_RESOURCE / ";
reason.append(flags_string);
break;
case MD_EXCEPTION_MAC_GUARD:
reason = "EXC_GUARD / ";
reason.append(flags_string);
break;
case MD_EXCEPTION_MAC_SIMULATED: case MD_EXCEPTION_MAC_SIMULATED:
reason = "Simulated Exception"; reason = "Simulated Exception";
break; break;