diff options
author | stuartmorgan <stuartmorgan@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2009-05-28 16:26:30 +0000 |
---|---|---|
committer | stuartmorgan <stuartmorgan@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2009-05-28 16:26:30 +0000 |
commit | 2a78191cab295637f7f77e5b58951bcb64ae8cec (patch) | |
tree | 8266318426f7c640ebe4f9bed714ece14e8cbbf9 | |
parent | Fix up warnings when building http_upload.cc. Changed warning level to /W4, a... (diff) | |
download | breakpad-2a78191cab295637f7f77e5b58951bcb64ae8cec.tar.xz |
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
-rw-r--r-- | src/client/mac/Framework/Breakpad.mm | 2 | ||||
-rw-r--r-- | src/client/mac/crash_generation/Inspector.mm | 11 |
2 files changed, 10 insertions, 3 deletions
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 |