| Index: util/mach/mach_extensions.cc
|
| diff --git a/util/mach/mach_extensions.cc b/util/mach/mach_extensions.cc
|
| index 63aae31d9ce92253c1df8b6a9bc2a265f3ba14e6..a3e147cc3bee2b01d7f5c5fab6eb639f52dfa7f2 100644
|
| --- a/util/mach/mach_extensions.cc
|
| +++ b/util/mach/mach_extensions.cc
|
| @@ -44,18 +44,24 @@ exception_mask_t ExcMaskAll() {
|
| // xnu-2422.110.17/osfmk/mach/ipc_tt.c.
|
|
|
| #if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_9
|
| - int mac_os_x_minor_version = MacOSXMinorVersion();
|
| + const int mac_os_x_minor_version = MacOSXMinorVersion();
|
| #endif
|
|
|
| // See 10.6.8 xnu-1504.15.3/osfmk/mach/exception_types.h. 10.7 uses the same
|
| // definition as 10.6. See 10.7.5 xnu-1699.32.7/osfmk/mach/exception_types.h
|
| const exception_mask_t kExcMaskAll_10_6 =
|
| - EXC_MASK_BAD_ACCESS | EXC_MASK_BAD_INSTRUCTION | EXC_MASK_ARITHMETIC |
|
| - EXC_MASK_EMULATION | EXC_MASK_SOFTWARE | EXC_MASK_BREAKPOINT |
|
| - EXC_MASK_SYSCALL | EXC_MASK_MACH_SYSCALL | EXC_MASK_RPC_ALERT |
|
| + EXC_MASK_BAD_ACCESS |
|
| + EXC_MASK_BAD_INSTRUCTION |
|
| + EXC_MASK_ARITHMETIC |
|
| + EXC_MASK_EMULATION |
|
| + EXC_MASK_SOFTWARE |
|
| + EXC_MASK_BREAKPOINT |
|
| + EXC_MASK_SYSCALL |
|
| + EXC_MASK_MACH_SYSCALL |
|
| + EXC_MASK_RPC_ALERT |
|
| EXC_MASK_MACHINE;
|
| -#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_7
|
| - if (mac_os_x_minor_version <= 7) {
|
| +#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_8
|
| + if (mac_os_x_minor_version < 8) {
|
| return kExcMaskAll_10_6;
|
| }
|
| #endif
|
| @@ -64,8 +70,8 @@ exception_mask_t ExcMaskAll() {
|
| // xnu-2050.48.11/osfmk/mach/exception_types.h.
|
| const exception_mask_t kExcMaskAll_10_8 =
|
| kExcMaskAll_10_6 | EXC_MASK_RESOURCE;
|
| -#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_8
|
| - if (mac_os_x_minor_version <= 8) {
|
| +#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_9
|
| + if (mac_os_x_minor_version < 9) {
|
| return kExcMaskAll_10_8;
|
| }
|
| #endif
|
| @@ -76,4 +82,18 @@ exception_mask_t ExcMaskAll() {
|
| return kExcMaskAll_10_9;
|
| }
|
|
|
| +exception_mask_t ExcMaskValid() {
|
| + const exception_mask_t kExcMaskValid_10_6 = ExcMaskAll() | EXC_MASK_CRASH;
|
| +#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11
|
| + if (MacOSXMinorVersion() < 11) {
|
| + return kExcMaskValid_10_6;
|
| + }
|
| +#endif
|
| +
|
| + // 10.11 added EXC_MASK_CORPSE_NOTIFY. See 10.11 <mach/exception_types.h>.
|
| + const exception_mask_t kExcMaskValid_10_11 =
|
| + kExcMaskValid_10_6 | EXC_MASK_CORPSE_NOTIFY;
|
| + return kExcMaskValid_10_11;
|
| +}
|
| +
|
| } // namespace crashpad
|
|
|