aboutsummaryrefslogtreecommitdiff
path: root/src/google_airbag
diff options
context:
space:
mode:
authormmentovai <mmentovai@4c0a9323-5329-0410-9bdc-e9ce6186880e>2007-02-07 20:20:10 +0000
committermmentovai <mmentovai@4c0a9323-5329-0410-9bdc-e9ce6186880e>2007-02-07 20:20:10 +0000
commitbaff938211b0127f6254c3179eb9a58af49ce8d0 (patch)
tree469b84259aa0032da02a176b2e3b69bc6e3b1678 /src/google_airbag
parentFix bug with mach-o walker not properly walking universal binary (Issue #125) (diff)
downloadbreakpad-baff938211b0127f6254c3179eb9a58af49ce8d0.tar.xz
Airbag windows client didn't trap VC8 parameter validation errors. Now it
does. (#120) r=bryner. http://groups.google.com/group/airbag-dev/browse_thread/thread/3f21d0e379e32771 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@120 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/google_airbag')
-rw-r--r--src/google_airbag/common/minidump_format.h24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/google_airbag/common/minidump_format.h b/src/google_airbag/common/minidump_format.h
index 535a6626..c211619f 100644
--- a/src/google_airbag/common/minidump_format.h
+++ b/src/google_airbag/common/minidump_format.h
@@ -494,7 +494,8 @@ typedef enum {
MD_LAST_RESERVED_STREAM = 0x0000ffff,
/* Airbag extension types. 0x4767 = "Gg" */
- MD_AIRBAG_INFO_STREAM = 0x47670001 /* MDRawAirbagInfo */
+ MD_AIRBAG_INFO_STREAM = 0x47670001, /* MDRawAirbagInfo */
+ MD_ASSERTION_INFO_STREAM = 0x47670002 /* MDRawAssertionInfo */
} MDStreamType; /* MINIDUMP_STREAM_TYPE */
@@ -1032,6 +1033,27 @@ typedef enum {
MD_AIRBAG_INFO_VALID_REQUESTING_THREAD_ID = 1 << 1
} MDAirbagInfoValidity;
+typedef struct {
+ /* expression, function, and file are 0-terminated UTF-16 strings. They
+ * may be truncated if necessary, but should always be 0-terminated when
+ * written to a file.
+ * Fixed-length strings are used because MiniDumpWriteDump doesn't offer
+ * a way for user streams to point to arbitrary RVAs for strings. */
+ u_int16_t expression[128]; /* Assertion that failed... */
+ u_int16_t function[128]; /* ...within this function... */
+ u_int16_t file[128]; /* ...in this file... */
+ u_int32_t line; /* ...at this line. */
+ u_int32_t type;
+} MDRawAssertionInfo;
+
+/* For (MDRawAssertionInfo).info: */
+typedef enum {
+ MD_ASSERTION_INFO_TYPE_UNKNOWN = 0,
+
+ /* Used for assertions that would be raised by the MSVC CRT but are
+ * directed to an invalid parameter handler instead. */
+ MD_ASSERTION_INFO_TYPE_INVALID_PARAMETER
+} MDAssertionInfoData;
#if defined(_MSC_VER)
#pragma warning(pop)