aboutsummaryrefslogtreecommitdiff
path: root/src/client/mac/Framework
diff options
context:
space:
mode:
authornealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e>2009-07-21 00:10:57 +0000
committernealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e>2009-07-21 00:10:57 +0000
commit22734848ea2124d2e8c75a472f71ae20a69fb116 (patch)
tree5afa6c3c84b50c60ae8438da402edd940c3bb949 /src/client/mac/Framework
parentFix for http://breakpad.appspot.com/18009 - run dump_syms on both PPC & i386 ... (diff)
downloadbreakpad-22734848ea2124d2e8c75a472f71ae20a69fb116.tar.xz
Port fixes from internal Google Breakpad to SVN.
A=preston, nealsid R=Stuart, Preston git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@360 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/client/mac/Framework')
-rw-r--r--src/client/mac/Framework/Breakpad.h11
-rw-r--r--src/client/mac/Framework/Breakpad.mm14
2 files changed, 14 insertions, 11 deletions
diff --git a/src/client/mac/Framework/Breakpad.h b/src/client/mac/Framework/Breakpad.h
index ab4d6220..6b5ce66a 100644
--- a/src/client/mac/Framework/Breakpad.h
+++ b/src/client/mac/Framework/Breakpad.h
@@ -89,6 +89,7 @@ extern "C" {
#define BREAKPAD_PROCESS_CRASH_TIME "BreakpadProcessCrashTime"
#define BREAKPAD_LOGFILE_KEY_PREFIX "BreakpadAppLogFile"
#define BREAKPAD_SERVER_PARAMETER_PREFIX "BreakpadServerParameterPrefix_"
+#define BREAKPAD_ON_DEMAND "BreakpadOnDemand"
// Optional user-defined function to dec to decide if we should handle
// this crash or forward it along.
@@ -215,7 +216,7 @@ typedef bool (*BreakpadFilterCallback)(int exception_type,
//=============================================================================
// The following are NOT user-supplied but are documented here for
// completeness. They are calculated by Breakpad during initialization &
-// crash-dump generation.
+// crash-dump generation, or entered in by the user.
//
// BREAKPAD_PROCESS_START_TIME The time the process started.
//
@@ -242,6 +243,12 @@ typedef bool (*BreakpadFilterCallback)(int exception_type,
// server without leaking Breakpad's
// internal values.
//
+// BREAKPAD_ON_DEMAND Used internally to indicate to the
+// Reporter that we're sending on-demand,
+// not as result of a crash.
+//
+// BREAKPAD_COMMENTS The text the user provided as comments.
+// Only used in crash_report_sender.
// Returns a new BreakpadRef object on success, NULL otherwise.
BreakpadRef BreakpadCreate(NSDictionary *parameters);
@@ -286,7 +293,7 @@ void BreakpadRemoveKeyValue(BreakpadRef ref, NSString *key);
// necessary. Note that as mentioned above there are limits on both
// the number of keys and their length.
void BreakpadAddUploadParameter(BreakpadRef ref, NSString *key,
- NSString *value);
+ NSString *value);
// This method will remove a previously-added parameter from the
// upload parameter set.
diff --git a/src/client/mac/Framework/Breakpad.mm b/src/client/mac/Framework/Breakpad.mm
index 551f9785..2528d99f 100644
--- a/src/client/mac/Framework/Breakpad.mm
+++ b/src/client/mac/Framework/Breakpad.mm
@@ -409,7 +409,6 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) {
NSString *timeout = [parameters objectForKey:@BREAKPAD_CONFIRM_TIMEOUT];
NSArray *logFilePaths = [parameters objectForKey:@BREAKPAD_LOGFILES];
NSString *logFileTailSize = [parameters objectForKey:@BREAKPAD_LOGFILE_UPLOAD_SIZE];
- NSString *reportEmail = [parameters objectForKey:@BREAKPAD_EMAIL];
NSString *requestUserText =
[parameters objectForKey:@BREAKPAD_REQUEST_COMMENTS];
NSString *requestEmail = [parameters objectForKey:@BREAKPAD_REQUEST_EMAIL];
@@ -451,7 +450,7 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) {
vendor = @"Vendor not specified";
}
- // Normalize the values
+ // Normalize the values.
if (skipConfirm) {
skipConfirm = [skipConfirm uppercaseString];
@@ -504,7 +503,7 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) {
[resourcePath stringByAppendingPathComponent:@"Inspector"];
}
- // Verify that there is an Inspector tool
+ // Verify that there is an Inspector tool.
if (![[NSFileManager defaultManager] fileExistsAtPath:inspectorPathString]) {
DEBUGLOG(stderr, "Cannot find Inspector tool\n");
return false;
@@ -517,7 +516,7 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) {
reporterPathString = [[NSBundle bundleWithPath:reporterPathString] executablePath];
}
- // Verify that there is a Reporter application
+ // Verify that there is a Reporter application.
if (![[NSFileManager defaultManager]
fileExistsAtPath:reporterPathString]) {
DEBUGLOG(stderr, "Cannot find Reporter tool\n");
@@ -588,11 +587,6 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) {
}
}
- if (reportEmail) {
- dictionary.SetKeyValue(BREAKPAD_EMAIL,
- [reportEmail UTF8String]);
- }
-
if (serverParameters) {
// For each key-value pair, call BreakpadAddUploadParameter()
NSEnumerator *keyEnumerator = [serverParameters keyEnumerator];
@@ -633,7 +627,9 @@ void Breakpad::RemoveKeyValue(NSString *key) {
//=============================================================================
void Breakpad::GenerateAndSendReport() {
+ config_params_->SetKeyValue(BREAKPAD_ON_DEMAND, "YES");
HandleException(0, 0, 0, mach_thread_self());
+ config_params_->SetKeyValue(BREAKPAD_ON_DEMAND, "NO");
}
//=============================================================================