aboutsummaryrefslogtreecommitdiff
path: root/src/processor
diff options
context:
space:
mode:
authorthestig@chromium.org <thestig@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e>2013-04-25 20:36:31 +0000
committerthestig@chromium.org <thestig@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e>2013-04-25 20:36:31 +0000
commit0bdc714c20a7891b79ea3b0fa50fff289f8fd01a (patch)
tree616be689191b967e67c88ce9420bc6891bc1292b /src/processor
parentCleanup: Use scoped_ptr where appropriate in DwarfCUToModule. (diff)
downloadbreakpad-0bdc714c20a7891b79ea3b0fa50fff289f8fd01a.tar.xz
Add MD_OS_PS3 to breakpad and exception types.
A=Jia Ji <jijia@google.com> Original review: https://breakpad.appspot.com/571002/ Review URL: https://breakpad.appspot.com/574002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1165 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/processor')
-rw-r--r--src/processor/exploitability.cc1
-rwxr-xr-xsrc/processor/minidump.cc7
-rw-r--r--src/processor/minidump_processor.cc82
3 files changed, 89 insertions, 1 deletions
diff --git a/src/processor/exploitability.cc b/src/processor/exploitability.cc
index 5355b7d1..5598966c 100644
--- a/src/processor/exploitability.cc
+++ b/src/processor/exploitability.cc
@@ -80,6 +80,7 @@ Exploitability *Exploitability::ExploitabilityForPlatform(
case MD_OS_UNIX:
case MD_OS_SOLARIS:
case MD_OS_ANDROID:
+ case MD_OS_PS3:
default: {
platform_exploitability = NULL;
break;
diff --git a/src/processor/minidump.cc b/src/processor/minidump.cc
index e29fccbc..94ea08b5 100755
--- a/src/processor/minidump.cc
+++ b/src/processor/minidump.cc
@@ -1950,7 +1950,8 @@ string MinidumpModule::code_identifier() const {
case MD_OS_IOS:
case MD_OS_SOLARIS:
case MD_OS_ANDROID:
- case MD_OS_LINUX: {
+ case MD_OS_LINUX:
+ case MD_OS_PS3: {
// TODO(mmentovai): support uuid extension if present, otherwise fall
// back to version (from LC_ID_DYLIB?), otherwise fall back to something
// else.
@@ -3302,6 +3303,10 @@ string MinidumpSystemInfo::GetOS() {
os = "android";
break;
+ case MD_OS_PS3:
+ os = "ps3";
+ break;
+
default:
BPLOG(ERROR) << "MinidumpSystemInfo unknown OS for platform " <<
HexString(system_info_.platform_id);
diff --git a/src/processor/minidump_processor.cc b/src/processor/minidump_processor.cc
index 2d14cb37..8b138775 100644
--- a/src/processor/minidump_processor.cc
+++ b/src/processor/minidump_processor.cc
@@ -552,6 +552,10 @@ bool MinidumpProcessor::GetOSInfo(Minidump *dump, SystemInfo *info) {
break;
}
+ case MD_OS_PS3: {
+ info->os = "PS3";
+ }
+
default: {
// Assign the numeric platform ID into the OS string.
char os_string[11];
@@ -1277,6 +1281,84 @@ string MinidumpProcessor::GetCrashReason(Minidump *dump, uint64_t *address) {
break;
}
+ case MD_OS_PS3: {
+ switch (exception_code) {
+ case MD_EXCEPTION_CODE_PS3_UNKNOWN:
+ reason = "UNKNOWN";
+ break;
+ case MD_EXCEPTION_CODE_PS3_TRAP_EXCEP:
+ reason = "TRAP_EXCEP";
+ break;
+ case MD_EXCEPTION_CODE_PS3_PRIV_INSTR:
+ reason = "PRIV_INSTR";
+ break;
+ case MD_EXCEPTION_CODE_PS3_ILLEGAL_INSTR:
+ reason = "ILLEGAL_INSTR";
+ break;
+ case MD_EXCEPTION_CODE_PS3_INSTR_STORAGE:
+ reason = "INSTR_STORAGE";
+ break;
+ case MD_EXCEPTION_CODE_PS3_INSTR_SEGMENT:
+ reason = "INSTR_SEGMENT";
+ break;
+ case MD_EXCEPTION_CODE_PS3_DATA_STORAGE:
+ reason = "DATA_STORAGE";
+ break;
+ case MD_EXCEPTION_CODE_PS3_DATA_SEGMENT:
+ reason = "DATA_SEGMENT";
+ break;
+ case MD_EXCEPTION_CODE_PS3_FLOAT_POINT:
+ reason = "FLOAT_POINT";
+ break;
+ case MD_EXCEPTION_CODE_PS3_DABR_MATCH:
+ reason = "DABR_MATCH";
+ break;
+ case MD_EXCEPTION_CODE_PS3_ALIGN_EXCEP:
+ reason = "ALIGN_EXCEP";
+ break;
+ case MD_EXCEPTION_CODE_PS3_MEMORY_ACCESS:
+ reason = "MEMORY_ACCESS";
+ break;
+ case MD_EXCEPTION_CODE_PS3_COPRO_ALIGN:
+ reason = "COPRO_ALIGN";
+ break;
+ case MD_EXCEPTION_CODE_PS3_COPRO_INVALID_COM:
+ reason = "COPRO_INVALID_COM";
+ break;
+ case MD_EXCEPTION_CODE_PS3_COPRO_ERR:
+ reason = "COPRO_ERR";
+ break;
+ case MD_EXCEPTION_CODE_PS3_COPRO_FIR:
+ reason = "COPRO_FIR";
+ break;
+ case MD_EXCEPTION_CODE_PS3_COPRO_DATA_SEGMENT:
+ reason = "COPRO_DATA_SEGMENT";
+ break;
+ case MD_EXCEPTION_CODE_PS3_COPRO_DATA_STORAGE:
+ reason = "COPRO_DATA_STORAGE";
+ break;
+ case MD_EXCEPTION_CODE_PS3_COPRO_STOP_INSTR:
+ reason = "COPRO_STOP_INSTR";
+ break;
+ case MD_EXCEPTION_CODE_PS3_COPRO_HALT_INSTR:
+ reason = "COPRO_HALT_INSTR";
+ break;
+ case MD_EXCEPTION_CODE_PS3_COPRO_HALTINST_UNKNOWN:
+ reason = "COPRO_HALTINSTR_UNKNOWN";
+ break;
+ case MD_EXCEPTION_CODE_PS3_COPRO_MEMORY_ACCESS:
+ reason = "COPRO_MEMORY_ACCESS";
+ break;
+ case MD_EXCEPTION_CODE_PS3_GRAPHIC:
+ reason = "GRAPHIC";
+ break;
+ default:
+ BPLOG(INFO) << "Unknown exception reason "<< reason;
+ break;
+ }
+ break;
+ }
+
default: {
BPLOG(INFO) << "Unknown exception reason " << reason;
break;