aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormseaborn@chromium.org <mseaborn@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e>2013-05-06 23:33:02 +0000
committermseaborn@chromium.org <mseaborn@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e>2013-05-06 23:33:02 +0000
commit85c352695f41b3c4bab8773bc2ace5a730dff2b7 (patch)
treeb7aee2a86524351e2fea610426bcfe1055004e53
parentFix an "unused variable" compiler warning in exploitability_win.cc (diff)
downloadbreakpad-85c352695f41b3c4bab8773bc2ace5a730dff2b7.tar.xz
Add MD_OS_NACL platform_id value for identifying NaCl minidumps
Change minidump-2-core to accept minidumps with this platform_id value rather than rejecting them as non-Linux dumps. Add a missing "break" for a MD_OS_PS3 case. BUG= https://code.google.com/p/nativeclient/issues/detail?id=3424 TEST= tested with work-in-progress NaCl minidump generator Review URL: https://breakpad.appspot.com/590002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1172 4c0a9323-5329-0410-9bdc-e9ce6186880e
-rw-r--r--src/google_breakpad/common/minidump_format.h3
-rwxr-xr-xsrc/processor/minidump.cc4
-rw-r--r--src/processor/minidump_processor.cc6
-rw-r--r--src/tools/linux/md2core/minidump-2-core.cc5
4 files changed, 15 insertions, 3 deletions
diff --git a/src/google_breakpad/common/minidump_format.h b/src/google_breakpad/common/minidump_format.h
index 11c21419..8c47e642 100644
--- a/src/google_breakpad/common/minidump_format.h
+++ b/src/google_breakpad/common/minidump_format.h
@@ -654,7 +654,8 @@ typedef enum {
MD_OS_LINUX = 0x8201, /* Linux */
MD_OS_SOLARIS = 0x8202, /* Solaris */
MD_OS_ANDROID = 0x8203, /* Android */
- MD_OS_PS3 = 0x8204 /* PS3 */
+ MD_OS_PS3 = 0x8204, /* PS3 */
+ MD_OS_NACL = 0x8205 /* Native Client (NaCl) */
} MDOSPlatform;
typedef struct {
diff --git a/src/processor/minidump.cc b/src/processor/minidump.cc
index 94ea08b5..8d4bab77 100755
--- a/src/processor/minidump.cc
+++ b/src/processor/minidump.cc
@@ -3307,6 +3307,10 @@ string MinidumpSystemInfo::GetOS() {
os = "ps3";
break;
+ case MD_OS_NACL:
+ os = "nacl";
+ 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 8b138775..374ea2fe 100644
--- a/src/processor/minidump_processor.cc
+++ b/src/processor/minidump_processor.cc
@@ -554,6 +554,12 @@ bool MinidumpProcessor::GetOSInfo(Minidump *dump, SystemInfo *info) {
case MD_OS_PS3: {
info->os = "PS3";
+ break;
+ }
+
+ case MD_OS_NACL: {
+ info->os = "NaCl";
+ break;
}
default: {
diff --git a/src/tools/linux/md2core/minidump-2-core.cc b/src/tools/linux/md2core/minidump-2-core.cc
index 93c46aab..333a0e58 100644
--- a/src/tools/linux/md2core/minidump-2-core.cc
+++ b/src/tools/linux/md2core/minidump-2-core.cc
@@ -425,8 +425,9 @@ ParseSystemInfo(CrashedProcess* crashinfo, const MinidumpMemoryRange& range,
#error "This code has not been ported to your platform yet"
#endif
if (!strstr(full_file.GetAsciiMDString(sysinfo->csd_version_rva).c_str(),
- "Linux")) {
- fprintf(stderr, "This minidump was not generated by Linux.\n");
+ "Linux") &&
+ sysinfo->platform_id != MD_OS_NACL) {
+ fprintf(stderr, "This minidump was not generated by Linux or NaCl.\n");
_exit(1);
}