From 325120efbd93fa043e344a4d5dfc6170fb6ec36f Mon Sep 17 00:00:00 2001
From: Mike Wittman <wittman@chromium.org>
Date: Thu, 27 Oct 2016 12:07:01 -0700
Subject: Generate reason for bad function table exception

This exception is being seen in Chrome during stack unwinding.

BUG=

Change-Id: Ica3f721ca605dff835ffc3814c60bab9f6f9b192
Reviewed-on: https://chromium-review.googlesource.com/404332
Reviewed-by: Mark Mentovai <mark@chromium.org>
---
 src/google_breakpad/common/minidump_exception_win32.h | 2 ++
 src/processor/minidump_processor.cc                   | 3 +++
 2 files changed, 5 insertions(+)

(limited to 'src')

diff --git a/src/google_breakpad/common/minidump_exception_win32.h b/src/google_breakpad/common/minidump_exception_win32.h
index 6fa3fba4..385bfaef 100644
--- a/src/google_breakpad/common/minidump_exception_win32.h
+++ b/src/google_breakpad/common/minidump_exception_win32.h
@@ -94,6 +94,8 @@ typedef enum {
       /* EXCEPTION_PRIV_INSTRUCTION */
   MD_EXCEPTION_CODE_WIN_STACK_OVERFLOW           = 0xc00000fd,
       /* EXCEPTION_STACK_OVERFLOW */
+  MD_EXCEPTION_CODE_WIN_BAD_FUNCTION_TABLE       = 0xc00000ff,
+      /* EXCEPTION_BAD_FUNCTION_TABLE */
   MD_EXCEPTION_CODE_WIN_POSSIBLE_DEADLOCK        = 0xc0000194,
       /* EXCEPTION_POSSIBLE_DEADLOCK */
   MD_EXCEPTION_CODE_WIN_STACK_BUFFER_OVERRUN     = 0xc0000409,
diff --git a/src/processor/minidump_processor.cc b/src/processor/minidump_processor.cc
index 33b4a128..f15e3115 100644
--- a/src/processor/minidump_processor.cc
+++ b/src/processor/minidump_processor.cc
@@ -1177,6 +1177,9 @@ string MinidumpProcessor::GetCrashReason(Minidump *dump, uint64_t *address) {
         case MD_EXCEPTION_CODE_WIN_STACK_OVERFLOW:
           reason = "EXCEPTION_STACK_OVERFLOW";
           break;
+        case MD_EXCEPTION_CODE_WIN_BAD_FUNCTION_TABLE:
+          reason = "EXCEPTION_BAD_FUNCTION_TABLE";
+          break;
         case MD_EXCEPTION_CODE_WIN_POSSIBLE_DEADLOCK:
           reason = "EXCEPTION_POSSIBLE_DEADLOCK";
           break;
-- 
cgit v1.2.1