Read Linux si_code in minidump_processor.

For common signals: SIGILL, SIGFPE, SIGSEGV, and SIGBUS.

Change-Id: I80048f70445c3fa6accd548704c5700b3bed12a4
Reviewed-on: https://chromium-review.googlesource.com/1012589
Reviewed-by: Robert Sesek <rsesek@chromium.org>
This commit is contained in:
Lei Zhang 2018-04-13 11:15:11 -07:00
parent c83fcf6470
commit 9eac2058b7
2 changed files with 143 additions and 4 deletions

View file

@ -84,4 +84,42 @@ typedef enum {
dump requested. */
} MDExceptionCodeLinux;
/* For (MDException).exception_flags. These values come from
* asm-generic/siginfo.h.
*/
typedef enum {
/* SIGILL */
MD_EXCEPTION_FLAG_LIN_ILL_ILLOPC = 1,
MD_EXCEPTION_FLAG_LIN_ILL_ILLOPN = 2,
MD_EXCEPTION_FLAG_LIN_ILL_ILLADR = 3,
MD_EXCEPTION_FLAG_LIN_ILL_ILLTRP = 4,
MD_EXCEPTION_FLAG_LIN_ILL_PRVOPC = 5,
MD_EXCEPTION_FLAG_LIN_ILL_PRVREG = 6,
MD_EXCEPTION_FLAG_LIN_ILL_COPROC = 7,
MD_EXCEPTION_FLAG_LIN_ILL_BADSTK = 8,
/* SIGFPE */
MD_EXCEPTION_FLAG_LIN_FPE_INTDIV = 1,
MD_EXCEPTION_FLAG_LIN_FPE_INTOVF = 2,
MD_EXCEPTION_FLAG_LIN_FPE_FLTDIV = 3,
MD_EXCEPTION_FLAG_LIN_FPE_FLTOVF = 4,
MD_EXCEPTION_FLAG_LIN_FPE_FLTUND = 5,
MD_EXCEPTION_FLAG_LIN_FPE_FLTRES = 6,
MD_EXCEPTION_FLAG_LIN_FPE_FLTINV = 7,
MD_EXCEPTION_FLAG_LIN_FPE_FLTSUB = 8,
/* SIGSEGV */
MD_EXCEPTION_FLAG_LIN_SEGV_MAPERR = 1,
MD_EXCEPTION_FLAG_LIN_SEGV_ACCERR = 2,
MD_EXCEPTION_FLAG_LIN_SEGV_BNDERR = 3,
MD_EXCEPTION_FLAG_LIN_SEGV_PKUERR = 4,
/* SIGBUS */
MD_EXCEPTION_FLAG_LIN_BUS_ADRALN = 1,
MD_EXCEPTION_FLAG_LIN_BUS_ADRERR = 2,
MD_EXCEPTION_FLAG_LIN_BUS_OBJERR = 3,
MD_EXCEPTION_FLAG_LIN_BUS_MCEERR_AR = 4,
MD_EXCEPTION_FLAG_LIN_BUS_MCEERR_AO = 5,
} MDExceptionFlagLinux;
#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_LINUX_H__ */