mirror of
https://github.com/yuzu-emu/breakpad.git
synced 2025-01-11 03:35:31 +00:00
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:
parent
9d4dcad18b
commit
b958379739
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in a new issue