00001 #include "GetExceptionCode.h"
00002
00003
00004 #include <string.h>
00005
00006 char *GetExceptionString(DWORD ExceptionCode)
00007 {
00008 char *StringOuput=(char *)MALLOC((strlen("EXCEPTION_NONCONTINUABLE_EXCEPTION")+1)*sizeof(char));
00009
00010 switch (ExceptionCode)
00011 {
00012 case EXCEPTION_ACCESS_VIOLATION:
00013 wsprintf(StringOuput,"%s","EXCEPTION_ACCESS_VIOLATION");
00014 break;
00015 case EXCEPTION_DATATYPE_MISALIGNMENT:
00016 wsprintf(StringOuput,"%s","EXCEPTION_DATATYPE_MISALIGNMENT");
00017 break;
00018 case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
00019 wsprintf(StringOuput,"%s","EXCEPTION_ARRAY_BOUNDS_EXCEEDED");
00020 break;
00021 case EXCEPTION_IN_PAGE_ERROR:
00022 wsprintf(StringOuput,"%s","EXCEPTION_IN_PAGE_ERROR");
00023 break;
00024 case EXCEPTION_GUARD_PAGE:
00025 wsprintf(StringOuput,"%s","EXCEPTION_GUARD_PAGE");
00026 break;
00027 case EXCEPTION_STACK_OVERFLOW:
00028 wsprintf(StringOuput,"%s","EXCEPTION_STACK_OVERFLOW");
00029 break;
00030 case EXCEPTION_ILLEGAL_INSTRUCTION:
00031 wsprintf(StringOuput,"%s","EXCEPTION_ILLEGAL_INSTRUCTION");
00032 break;
00033 case EXCEPTION_PRIV_INSTRUCTION:
00034 wsprintf(StringOuput,"%s","EXCEPTION_PRIV_INSTRUCTION");
00035 break;
00036 case EXCEPTION_INVALID_DISPOSITION:
00037 wsprintf(StringOuput,"%s","EXCEPTION_INVALID_DISPOSITION");
00038 break;
00039 case EXCEPTION_NONCONTINUABLE_EXCEPTION:
00040 wsprintf(StringOuput,"%s","EXCEPTION_NONCONTINUABLE_EXCEPTION");
00041 break;
00042 case EXCEPTION_BREAKPOINT:
00043 wsprintf(StringOuput,"%s","EXCEPTION_BREAKPOINT");
00044 break;
00045 case EXCEPTION_SINGLE_STEP:
00046 wsprintf(StringOuput,"%s","EXCEPTION_SINGLE_STEP");
00047 break;
00048 case EXCEPTION_INVALID_HANDLE:
00049 wsprintf(StringOuput,"%s","EXCEPTION_INVALID_HANDLE");
00050 break;
00051 case EXCEPTION_INT_DIVIDE_BY_ZERO:
00052 wsprintf(StringOuput,"%s","EXCEPTION_INT_DIVIDE_BY_ZERO");
00053 break;
00054 case EXCEPTION_INT_OVERFLOW:
00055 wsprintf(StringOuput,"%s","EXCEPTION_INT_OVERFLOW");
00056 break;
00057 case EXCEPTION_FLT_DENORMAL_OPERAND:
00058 wsprintf(StringOuput,"%s","EXCEPTION_FLT_DENORMAL_OPERAND");
00059 break;
00060 case EXCEPTION_FLT_DIVIDE_BY_ZERO:
00061 wsprintf(StringOuput,"%s","EXCEPTION_FLT_DIVIDE_BY_ZERO");
00062 break;
00063 case EXCEPTION_FLT_INEXACT_RESULT:
00064 wsprintf(StringOuput,"%s","EXCEPTION_FLT_INEXACT_RESULT");
00065 break;
00066 case EXCEPTION_FLT_INVALID_OPERATION:
00067 wsprintf(StringOuput,"%s","EXCEPTION_FLT_INVALID_OPERATION");
00068 break;
00069 case EXCEPTION_FLT_OVERFLOW:
00070 wsprintf(StringOuput,"%s","EXCEPTION_FLT_OVERFLOW");
00071 break;
00072 case EXCEPTION_FLT_STACK_CHECK:
00073 wsprintf(StringOuput,"%s","EXCEPTION_FLT_STACK_CHECK");
00074 break;
00075 case EXCEPTION_FLT_UNDERFLOW:
00076 wsprintf(StringOuput,"%s","EXCEPTION_FLT_UNDERFLOW");
00077 break;
00078 default:
00079 wsprintf(StringOuput,"%s","unknown exception");
00080 break;
00081 }
00082
00083 return StringOuput;
00084 }
00085