aboutsummaryrefslogtreecommitdiff
path: root/src/client/mac/Framework/Breakpad.mm
diff options
context:
space:
mode:
authorted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e>2009-06-12 20:36:53 +0000
committerted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e>2009-06-12 20:36:53 +0000
commit61e88c7ad7eb072977b4d4d26bcf8929b75af2d4 (patch)
tree1a01c4085f3a246fa4d51a8fbe69144544bcb752 /src/client/mac/Framework/Breakpad.mm
parentFix for generating dumps on-demand to set the requesting thread to the curren... (diff)
downloadbreakpad-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/Framework/Breakpad.mm')
-rw-r--r--src/client/mac/Framework/Breakpad.mm8
1 files changed, 7 insertions, 1 deletions
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));