2437 |
|
mach_get_exception_state(SIP); |
2438 |
|
|
2439 |
|
sigsegv_address_t addr = (sigsegv_address_t)SIGSEGV_FAULT_ADDRESS; |
2440 |
< |
if (use_fast_path < 0) |
2441 |
< |
use_fast_path = addr == SIP->addr; |
2440 |
> |
if (use_fast_path < 0) { |
2441 |
> |
const char *machfault = getenv("SIGSEGV_MACH_FAULT"); |
2442 |
> |
if (machfault) { |
2443 |
> |
if (strcmp(machfault, "fast") == 0) |
2444 |
> |
use_fast_path = 1; |
2445 |
> |
else if (strcmp(machfault, "slow") == 0) |
2446 |
> |
use_fast_path = 0; |
2447 |
> |
} |
2448 |
> |
if (use_fast_path < 0) |
2449 |
> |
use_fast_path = addr == SIP->addr; |
2450 |
> |
} |
2451 |
|
SIP->addr = addr; |
2452 |
|
} |
2453 |
|
#endif |