Handle ios dump.

This change add a flag for ios minidumps and allow handler to recognize it.

 It doesn't recognize arm specific exceptions that will be logged as unknown
type.
Review URL: http://breakpad.appspot.com/311002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@855 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
qsr@chromium.org 2011-10-11 14:17:02 +00:00
parent 9d4dcad18b
commit b958379739
5 changed files with 18 additions and 1 deletions

View file

@ -1099,7 +1099,11 @@ bool MinidumpGenerator::WriteSystemInfoStream(
} }
info_ptr->number_of_processors = number_of_processors; info_ptr->number_of_processors = number_of_processors;
#if TARGET_OS_IPHONE
info_ptr->platform_id = MD_OS_IOS;
#else
info_ptr->platform_id = MD_OS_MAC_OS_X; info_ptr->platform_id = MD_OS_MAC_OS_X;
#endif // TARGET_OS_IPHONE
MDLocationDescriptor build_string_loc; MDLocationDescriptor build_string_loc;

View file

@ -609,6 +609,7 @@ typedef enum {
/* The following values are Breakpad-defined. */ /* The following values are Breakpad-defined. */
MD_OS_UNIX = 0x8000, /* Generic Unix-ish */ MD_OS_UNIX = 0x8000, /* Generic Unix-ish */
MD_OS_MAC_OS_X = 0x8101, /* Mac OS X/Darwin */ MD_OS_MAC_OS_X = 0x8101, /* Mac OS X/Darwin */
MD_OS_IOS = 0x8102, /* iOS */
MD_OS_LINUX = 0x8201, /* Linux */ MD_OS_LINUX = 0x8201, /* Linux */
MD_OS_SOLARIS = 0x8202 /* Solaris */ MD_OS_SOLARIS = 0x8202 /* Solaris */
} MDOSPlatform; } MDOSPlatform;

View file

@ -75,6 +75,7 @@ Exploitability *Exploitability::ExploitabilityForPlatform(
break; break;
} }
case MD_OS_MAC_OS_X: case MD_OS_MAC_OS_X:
case MD_OS_IOS:
case MD_OS_LINUX: case MD_OS_LINUX:
case MD_OS_UNIX: case MD_OS_UNIX:
case MD_OS_SOLARIS: case MD_OS_SOLARIS:

View file

@ -1758,6 +1758,7 @@ string MinidumpModule::code_identifier() const {
} }
case MD_OS_MAC_OS_X: case MD_OS_MAC_OS_X:
case MD_OS_IOS:
case MD_OS_SOLARIS: case MD_OS_SOLARIS:
case MD_OS_LINUX: { case MD_OS_LINUX: {
// TODO(mmentovai): support uuid extension if present, otherwise fall // TODO(mmentovai): support uuid extension if present, otherwise fall
@ -3095,6 +3096,10 @@ string MinidumpSystemInfo::GetOS() {
os = "mac"; os = "mac";
break; break;
case MD_OS_IOS:
os = "ios";
break;
case MD_OS_LINUX: case MD_OS_LINUX:
os = "linux"; os = "linux";
break; break;

View file

@ -386,6 +386,11 @@ bool MinidumpProcessor::GetOSInfo(Minidump *dump, SystemInfo *info) {
break; break;
} }
case MD_OS_IOS: {
info->os = "iOS";
break;
}
case MD_OS_LINUX: { case MD_OS_LINUX: {
info->os = "Linux"; info->os = "Linux";
break; break;
@ -451,7 +456,8 @@ string MinidumpProcessor::GetCrashReason(Minidump *dump, u_int64_t *address) {
return reason; return reason;
switch (raw_system_info->platform_id) { switch (raw_system_info->platform_id) {
case MD_OS_MAC_OS_X: { case MD_OS_MAC_OS_X:
case MD_OS_IOS: {
char flags_string[11]; char flags_string[11];
snprintf(flags_string, sizeof(flags_string), "0x%08x", exception_flags); snprintf(flags_string, sizeof(flags_string), "0x%08x", exception_flags);
switch (exception_code) { switch (exception_code) {