From b2bc3bcc845b59c12db49feead091faebd6d116b Mon Sep 17 00:00:00 2001
From: "ted.mielczarek" <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e>
Date: Fri, 4 Sep 2009 20:00:33 +0000
Subject: [PATCH] Issue 328 - should have constant for VC++ exceptions, and
 stringify in MinidumpProcessor::GetCrashReason r=nealsid at
 http://breakpad.appspot.com/25001/show

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@394 4c0a9323-5329-0410-9bdc-e9ce6186880e
---
 src/google_breakpad/common/minidump_exception_win32.h | 5 ++++-
 src/processor/minidump_processor.cc                   | 3 +++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/google_breakpad/common/minidump_exception_win32.h b/src/google_breakpad/common/minidump_exception_win32.h
index 7fd4bc4f..f052401c 100644
--- a/src/google_breakpad/common/minidump_exception_win32.h
+++ b/src/google_breakpad/common/minidump_exception_win32.h
@@ -94,8 +94,11 @@ typedef enum {
       /* EXCEPTION_PRIV_INSTRUCTION */
   MD_EXCEPTION_CODE_WIN_STACK_OVERFLOW           = 0xc00000fd,
       /* EXCEPTION_STACK_OVERFLOW */
-  MD_EXCEPTION_CODE_WIN_POSSIBLE_DEADLOCK        = 0xc0000194
+  MD_EXCEPTION_CODE_WIN_POSSIBLE_DEADLOCK        = 0xc0000194,
       /* EXCEPTION_POSSIBLE_DEADLOCK */
+  MD_EXCEPTION_CODE_WIN_UNHANDLED_CPP_EXCEPTION  = 0xe06d7363
+      /* Per http://support.microsoft.com/kb/185294,
+         generated by Visual C++ compiler */
 } MDExceptionCodeWin;
 
 
diff --git a/src/processor/minidump_processor.cc b/src/processor/minidump_processor.cc
index 46243f88..150887fb 100644
--- a/src/processor/minidump_processor.cc
+++ b/src/processor/minidump_processor.cc
@@ -754,6 +754,9 @@ string MinidumpProcessor::GetCrashReason(Minidump *dump, u_int64_t *address) {
         case MD_EXCEPTION_CODE_WIN_POSSIBLE_DEADLOCK:
           reason = "EXCEPTION_POSSIBLE_DEADLOCK";
           break;
+        case MD_EXCEPTION_CODE_WIN_UNHANDLED_CPP_EXCEPTION:
+	  reason = "Unhandled C++ Exception";
+	  break;
         default:
           BPLOG(INFO) << "Unknown exception reason " << reason;
           break;