diff options
Diffstat (limited to 'src/client/mac/crash_generation')
-rw-r--r-- | src/client/mac/crash_generation/Inspector.h | 2 | ||||
-rw-r--r-- | src/client/mac/crash_generation/Inspector.mm | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/client/mac/crash_generation/Inspector.h b/src/client/mac/crash_generation/Inspector.h index 9ee5c48c..dda53703 100644 --- a/src/client/mac/crash_generation/Inspector.h +++ b/src/client/mac/crash_generation/Inspector.h @@ -56,6 +56,7 @@ enum { struct InspectorInfo { int exception_type; int exception_code; + int exception_subcode; unsigned int parameter_count; // key-value pairs }; @@ -177,6 +178,7 @@ class Inspector { int exception_type_; int exception_code_; + int exception_subcode_; mach_port_t remote_task_; mach_port_t crashing_thread_; mach_port_t handler_thread_; diff --git a/src/client/mac/crash_generation/Inspector.mm b/src/client/mac/crash_generation/Inspector.mm index 649d4b15..5c5c2218 100644 --- a/src/client/mac/crash_generation/Inspector.mm +++ b/src/client/mac/crash_generation/Inspector.mm @@ -297,6 +297,7 @@ kern_return_t Inspector::ReadMessages() { InspectorInfo &info = (InspectorInfo &)*message.GetData(); exception_type_ = info.exception_type; exception_code_ = info.exception_code; + exception_subcode_ = info.exception_subcode; #if VERBOSE printf("message ID = %d\n", message.GetMessageID()); @@ -310,6 +311,7 @@ kern_return_t Inspector::ReadMessages() { #if VERBOSE printf("exception_type = %d\n", exception_type_); printf("exception_code = %d\n", exception_code_); + printf("exception_subcode = %d\n", exception_subcode_); printf("remote_task = %d\n", remote_task_); printf("crashing_thread = %d\n", crashing_thread_); printf("handler_thread = %d\n", handler_thread_); @@ -435,6 +437,7 @@ bool Inspector::InspectTask() { if (exception_type_ && exception_code_) { generator.SetExceptionInformation(exception_type_, exception_code_, + exception_subcode_, crashing_thread_); } |