From 61e88c7ad7eb072977b4d4d26bcf8929b75af2d4 Mon Sep 17 00:00:00 2001 From: "ted.mielczarek" Date: Fri, 12 Jun 2009 20:36:53 +0000 Subject: 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 --- src/client/mac/Framework/Breakpad.mm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/client/mac/Framework') diff --git a/src/client/mac/Framework/Breakpad.mm b/src/client/mac/Framework/Breakpad.mm index 929cfaa8..551f9785 100644 --- a/src/client/mac/Framework/Breakpad.mm +++ b/src/client/mac/Framework/Breakpad.mm @@ -177,10 +177,12 @@ class Breakpad { static bool ExceptionHandlerDirectCallback(void *context, int exception_type, int exception_code, + int exception_subcode, mach_port_t crashing_thread); bool HandleException(int exception_type, int exception_code, + int exception_subcode, mach_port_t crashing_thread); // Since ExceptionHandler (w/o namespace) is defined as typedef in OSX's @@ -245,6 +247,7 @@ static BOOL IsDebuggerActive() { bool Breakpad::ExceptionHandlerDirectCallback(void *context, int exception_type, int exception_code, + int exception_subcode, mach_port_t crashing_thread) { Breakpad *breakpad = (Breakpad *)context; @@ -255,6 +258,7 @@ bool Breakpad::ExceptionHandlerDirectCallback(void *context, return breakpad->HandleException( exception_type, exception_code, + exception_subcode, crashing_thread); } @@ -629,12 +633,13 @@ void Breakpad::RemoveKeyValue(NSString *key) { //============================================================================= void Breakpad::GenerateAndSendReport() { - HandleException(0, 0, mach_thread_self()); + HandleException(0, 0, 0, mach_thread_self()); } //============================================================================= bool Breakpad::HandleException(int exception_type, int exception_code, + int exception_subcode, mach_port_t crashing_thread) { DEBUGLOG(stderr, "Breakpad: an exception occurred\n"); @@ -670,6 +675,7 @@ bool Breakpad::HandleException(int exception_type, InspectorInfo info; info.exception_type = exception_type; info.exception_code = exception_code; + info.exception_subcode = exception_subcode; info.parameter_count = config_params_->GetCount(); message.SetData(&info, sizeof(info)); -- cgit v1.2.1