| Index: tools/catch_exception_tool.cc
|
| diff --git a/tools/catch_exception_tool.cc b/tools/catch_exception_tool.cc
|
| index 2cc547c7df21394e2bb2816311807cede1a05221..69447f758c0b69e6f359ab660f3ecaa367ea8dea 100644
|
| --- a/tools/catch_exception_tool.cc
|
| +++ b/tools/catch_exception_tool.cc
|
| @@ -117,20 +117,16 @@ class ExceptionServer : public UniversalMachExcServer {
|
| }
|
|
|
| if (exception == EXC_CRASH) {
|
| - // 10.9.4 xnu-2422.110.17/bsd/kern/kern_exit.c proc_prepareexit() sets
|
| - // code[0] based on the signal value, original exception type, and low 20
|
| - // bits of the original code[0] before calling
|
| - // xnu-2422.110.17/osfmk/kern/exception.c task_exception_notify() to raise
|
| - // an EXC_CRASH.
|
| - int sig = (code[0] >> 24) & 0xff;
|
| - int orig_exception = (code[0] >> 20) & 0xf;
|
| - int orig_code_0 = code[0] & 0xfffff;
|
| + mach_exception_data_type_t original_code_0;
|
| + int signal;
|
| + exception_type_t original_exception =
|
| + ExcCrashRecoverOriginalException(code[0], &original_code_0, &signal);
|
| fprintf(options_.file,
|
| - ", original exception %s, original code0 %d, signal %s",
|
| - ExceptionToString(orig_exception,
|
| + ", original exception %s, original code[0] %lld, signal %s",
|
| + ExceptionToString(original_exception,
|
| kUseFullName | kUnknownIsNumeric).c_str(),
|
| - orig_code_0,
|
| - SignalToString(sig, kUseFullName | kUnknownIsNumeric).c_str());
|
| + original_code_0,
|
| + SignalToString(signal, kUseFullName | kUnknownIsNumeric).c_str());
|
| }
|
|
|
| fprintf(options_.file, "\n");
|
|
|