Changeset 8920 for trunk/src/kernel32/exceptions.cpp
- Timestamp:
- Jul 26, 2002, 12:47:33 PM (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/exceptions.cpp
r8840 r8920 1 /* $Id: exceptions.cpp,v 1.6 4 2002-07-05 17:59:30sandervl Exp $ */1 /* $Id: exceptions.cpp,v 1.65 2002-07-26 10:47:33 sandervl Exp $ */ 2 2 3 3 /* … … 679 679 SetExceptionChain((ULONG)-1); 680 680 DosExit(EXIT_PROCESS, 666); 681 } 682 //***************************************************************************** 683 //***************************************************************************** 684 void KillWin32Thread(void) 685 { 686 // ExitThread(666); 687 //Restore original OS/2 TIB selector 688 RestoreOS2FS(); 689 690 SetExceptionChain((ULONG)-1); 691 DosExit(EXIT_THREAD, 666); 681 692 } 682 693 //***************************************************************************** … … 1283 1294 #ifdef DEBUG 1284 1295 dprintfException(pERepRec, pERegRec, pCtxRec, p); 1285 if( pCtxRec->ContextFlags & CONTEXT_CONTROL) {1296 if(!fExitProcess && (pCtxRec->ContextFlags & CONTEXT_CONTROL)) { 1286 1297 dbgPrintStack(pERepRec, pERegRec, pCtxRec, p); 1287 1298 } … … 1290 1301 if(!fIsOS2Image && !fExitProcess) //Only for real win32 apps 1291 1302 { 1292 if(OSLibDispatchException(pERepRec, pERegRec, pCtxRec, p) == TRUE) 1303 if(OSLibDispatchException(pERepRec, pERegRec, pCtxRec, p) == TRUE) 1304 { 1305 goto continueexecution; 1306 } 1307 } 1308 else { 1309 if(fExitProcess) { 1310 PPIB pPIB; 1311 PTIB pTIB; 1312 APIRET rc; 1313 1314 rc = DosGetInfoBlocks (&pTIB, &pPIB); 1315 if(rc == NO_ERROR && pTIB->tib_ptib2->tib2_ultid != 1) 1293 1316 { 1294 goto continueexecution; 1317 dprintf(("KERNEL32: OS2ExceptionHandler: Continue and kill thread")); 1318 1319 pCtxRec->ctx_RegEip = (ULONG)KillWin32Thread; 1320 pCtxRec->ctx_RegEsp = pCtxRec->ctx_RegEsp + 0x10; 1321 pCtxRec->ctx_RegEax = pERepRec->ExceptionNum; 1322 pCtxRec->ctx_RegEbx = pCtxRec->ctx_RegEip; 1323 goto continueexecution; 1295 1324 } 1296 } 1297 else goto continuesearch; //pass on to OS/2 RTL or app exception handler 1325 } 1326 goto continuesearch; //pass on to OS/2 RTL or app exception handler 1327 } 1298 1328 1299 1329 //Log fatal exception here
Note:
See TracChangeset
for help on using the changeset viewer.