From 2a78191cab295637f7f77e5b58951bcb64ae8cec Mon Sep 17 00:00:00 2001 From: stuartmorgan Date: Thu, 28 May 2009 16:26:30 +0000 Subject: Show the reporter UI for Breakpad.framework regardless of whether continuing the crashed process succeeded (issue 319) git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@341 4c0a9323-5329-0410-9bdc-e9ce6186880e --- src/client/mac/Framework/Breakpad.mm | 2 +- src/client/mac/crash_generation/Inspector.mm | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'src/client/mac') diff --git a/src/client/mac/Framework/Breakpad.mm b/src/client/mac/Framework/Breakpad.mm index ed3d385e..ad4a1cda 100644 --- a/src/client/mac/Framework/Breakpad.mm +++ b/src/client/mac/Framework/Breakpad.mm @@ -678,7 +678,7 @@ bool Breakpad::HandleException(int exception_type, if (result == KERN_SUCCESS) { // Wait for acknowledgement that the inspection has finished. MachReceiveMessage acknowledge_messsage; - result = acknowledge_port.WaitForMessage(&acknowledge_messsage, 2000); + result = acknowledge_port.WaitForMessage(&acknowledge_messsage, 5000); } } diff --git a/src/client/mac/crash_generation/Inspector.mm b/src/client/mac/crash_generation/Inspector.mm index 81db9741..649d4b15 100644 --- a/src/client/mac/crash_generation/Inspector.mm +++ b/src/client/mac/crash_generation/Inspector.mm @@ -208,14 +208,21 @@ void Inspector::Inspect(const char *receive_port_name) { if (result == KERN_SUCCESS) { // Inspect the task and write a minidump file. - InspectTask(); + bool wrote_minidump = InspectTask(); // Send acknowledgement to the crashed process that the inspection // has finished. It will then be able to cleanly exit. - if (SendAcknowledgement() == KERN_SUCCESS) { + // The return value is ignored because failure isn't fatal. If the process + // didn't get the message there's nothing we can do, and we still want to + // send the report. + SendAcknowledgement(); + + if (wrote_minidump) { // Ask the user if he wants to upload the crash report to a server, // and do so if he agrees. LaunchReporter(config_file_.GetFilePath()); + } else { + fprintf(stderr, "Inspection of crashed process failed\n"); } // Now that we're done reading messages, cleanup the service, but only -- cgit v1.2.1