diff options
author | mmentovai <mmentovai@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2007-02-07 20:20:10 +0000 |
---|---|---|
committer | mmentovai <mmentovai@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2007-02-07 20:20:10 +0000 |
commit | baff938211b0127f6254c3179eb9a58af49ce8d0 (patch) | |
tree | 469b84259aa0032da02a176b2e3b69bc6e3b1678 /src/google_airbag | |
parent | Fix bug with mach-o walker not properly walking universal binary (Issue #125) (diff) | |
download | breakpad-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.h | 24 |
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) |