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;
#if TARGET_OS_IPHONE
info_ptr->platform_id = MD_OS_IOS;
#else
info_ptr->platform_id = MD_OS_MAC_OS_X;
#endif // TARGET_OS_IPHONE
MDLocationDescriptor build_string_loc;

View file

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

View file

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

View file

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

View file

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