diff options
author | ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2009-06-12 20:36:53 +0000 |
---|---|---|
committer | ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2009-06-12 20:36:53 +0000 |
commit | 61e88c7ad7eb072977b4d4d26bcf8929b75af2d4 (patch) | |
tree | 1a01c4085f3a246fa4d51a8fbe69144544bcb752 /src/client/mac/crash_generation | |
parent | Fix for generating dumps on-demand to set the requesting thread to the curren... (diff) | |
download | breakpad-61e88c7ad7eb072977b4d4d26bcf8929b75af2d4.tar.xz |
issue 323 - OS X exception handler / minidump generator should set exception address correctly for EXC_BAD_ACCESS . r=nealsid at http://breakpad.appspot.com/15002
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@350 4c0a9323-5329-0410-9bdc-e9ce6186880e
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_); } |