| 106 | } |
| 107 | |
| 108 | static const char * exception_code_to_string(DWORD code) { |
| 109 | switch (code) { |
| 110 | case EXCEPTION_ACCESS_VIOLATION: return "EXCEPTION_ACCESS_VIOLATION"; |
| 111 | case EXCEPTION_STACK_OVERFLOW: return "EXCEPTION_STACK_OVERFLOW"; |
| 112 | case EXCEPTION_INT_DIVIDE_BY_ZERO: return "EXCEPTION_INT_DIVIDE_BY_ZERO"; |
| 113 | case EXCEPTION_ILLEGAL_INSTRUCTION: return "EXCEPTION_ILLEGAL_INSTRUCTION"; |
| 114 | case EXCEPTION_FLT_DIVIDE_BY_ZERO: return "EXCEPTION_FLT_DIVIDE_BY_ZERO"; |
| 115 | case EXCEPTION_FLT_OVERFLOW: return "EXCEPTION_FLT_OVERFLOW"; |
| 116 | case EXCEPTION_FLT_UNDERFLOW: return "EXCEPTION_FLT_UNDERFLOW"; |
| 117 | case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: return "EXCEPTION_ARRAY_BOUNDS_EXCEEDED"; |
| 118 | case EXCEPTION_BREAKPOINT: return "EXCEPTION_BREAKPOINT"; |
| 119 | case EXCEPTION_DATATYPE_MISALIGNMENT: return "EXCEPTION_DATATYPE_MISALIGNMENT"; |
| 120 | case EXCEPTION_IN_PAGE_ERROR: return "EXCEPTION_IN_PAGE_ERROR"; |
| 121 | default: return "UNKNOWN_EXCEPTION"; |
| 122 | } |
| 123 | } |
| 124 | |
| 125 | static bool is_fatal_exception(DWORD code) { |
| 126 | switch (code) { |
no outgoing calls
no test coverage detected