Changeset 4496 for trunk/src/kernel32/exceptions.cpp
- Timestamp:
- Oct 18, 2000, 7:09:34 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/exceptions.cpp
r4433 r4496 1 /* $Id: exceptions.cpp,v 1.4 6 2000-10-05 18:36:49sandervl Exp $ */1 /* $Id: exceptions.cpp,v 1.47 2000-10-18 17:09:31 sandervl Exp $ */ 2 2 3 3 /* WARNING: Compiling this module with ICC with optimizations turned on */ … … 1048 1048 #endif 1049 1049 1050 //in misc.cpp1051 void CheckLogException();1052 1053 1050 ULONG APIENTRY OS2ExceptionHandler(PEXCEPTIONREPORTRECORD pERepRec, 1054 1051 PEXCEPTIONREGISTRATIONRECORD pERegRec, … … 1058 1055 //SvL: Check if exception inside debug fprintf -> if so, clear lock so 1059 1056 // next dprintf won't wait forever 1060 CheckLogException(); 1061 1057 LogException(ENTER_EXCEPTION); 1062 1058 1063 1059 /* Access violation at a known location */ … … 1083 1079 } 1084 1080 dprintf(("KERNEL32: OS2ExceptionHandler: fix and continue\n")); 1085 return (XCPT_CONTINUE_EXECUTION);1081 goto continueexecution; 1086 1082 } 1087 1083 else 1088 1084 { 1089 1085 dprintf(("KERNEL32: OS2ExceptionHandler: continue search\n")); 1090 return (XCPT_CONTINUE_SEARCH);1086 goto continuesearch; 1091 1087 } 1092 1088 … … 1095 1091 dprintfException(pERepRec, pERegRec, pCtxRec, p); 1096 1092 SetExceptionChain((ULONG)-1); 1097 return (XCPT_CONTINUE_SEARCH);1093 goto continuesearch; 1098 1094 1099 1095 case XCPT_ACCESS_VIOLATION: … … 1126 1122 } 1127 1123 if(map->commitPage(offset, fWriteAccess) == TRUE) 1128 return (XCPT_CONTINUE_EXECUTION);1124 goto continueexecution; 1129 1125 1130 1126 //no break; … … 1177 1173 // recurse infinitely until we run out of stack space!! 1178 1174 if (pERepRec->fHandlerFlags & EH_NESTED_CALL) 1179 return XCPT_CONTINUE_SEARCH;1175 goto continuesearch; 1180 1176 1181 1177 #ifdef DEBUG … … 1189 1185 if(OSLibDispatchException(pERepRec, pERegRec, pCtxRec, p) == TRUE) 1190 1186 { 1191 return (XCPT_CONTINUE_EXECUTION);1187 goto continueexecution; 1192 1188 } 1193 1189 } 1194 else return XCPT_CONTINUE_SEARCH; //pass on to OS/2 RTL or app exception handler1190 else goto continuesearch; //pass on to OS/2 RTL or app exception handler 1195 1191 1196 1192 dprintf(("KERNEL32: OS2ExceptionHandler: Continue and kill\n")); … … 1199 1195 pCtxRec->ctx_RegEax = pERepRec->ExceptionNum; 1200 1196 pCtxRec->ctx_RegEbx = pCtxRec->ctx_RegEip; 1201 return (XCPT_CONTINUE_EXECUTION);1197 goto continueexecution; 1202 1198 1203 1199 //@@@PH: growing thread stacks might need special treatment 1204 1200 case XCPT_GUARD_PAGE_VIOLATION: 1205 dprintf(("KERNEL32: OS2ExceptionHandler: trying to grow stack (continue search)")); 1206 return (XCPT_CONTINUE_SEARCH); 1201 //SvL: don't print anything here -> fatal hang if happens inside fprintf 1202 //dprintf(("KERNEL32: OS2ExceptionHandler: trying to grow stack (continue search)")); 1203 goto continuesearch; 1207 1204 1208 1205 case XCPT_SIGNAL: 1209 if(pERepRec->ExceptionInfo[0] == XCPT_SIGNAL_KILLPROC) /* resolve signal information */1210 {1211 SetExceptionChain((ULONG)-1);1212 return (XCPT_CONTINUE_SEARCH);1213 }1214 goto CrashAndBurn;1206 if(pERepRec->ExceptionInfo[0] == XCPT_SIGNAL_KILLPROC) /* resolve signal information */ 1207 { 1208 SetExceptionChain((ULONG)-1); 1209 goto continuesearch; 1210 } 1211 goto CrashAndBurn; 1215 1212 1216 1213 default: //non-continuable exceptions 1217 1214 dprintfException(pERepRec, pERegRec, pCtxRec, p); 1218 return (XCPT_CONTINUE_SEARCH); 1219 } 1220 return (XCPT_CONTINUE_SEARCH); 1215 goto continuesearch; 1216 } 1217 continuesearch: 1218 LogException(LEAVE_EXCEPTION); 1219 return XCPT_CONTINUE_SEARCH; 1220 1221 continueexecution: 1222 LogException(LEAVE_EXCEPTION); 1223 return XCPT_CONTINUE_EXECUTION; 1221 1224 } 1222 1225
Note:
See TracChangeset
for help on using the changeset viewer.