LTCD_070816.ISO
This commit is contained in:
1 parent
d14bbc24f9
commit
0e9364ff4c
506 files changed
+157705
-41812
No files matched your search
@@ -0,0 +1,51 @@
|
||||
/* When a fault occurs, a child process is
|
||||
spawned running this file and the parent
|
||||
gets suspended. You can modify what gets
|
||||
displayed during faults to assist debugging.
|
||||
|
||||
If you modify this file, you should place it
|
||||
into your HOME directory. This version is the
|
||||
default for accounts without a version in HOME.
|
||||
*/
|
||||
|
||||
TssStruct *tss=Fs->parent_tss;
|
||||
void **rsp_ptr=&tss->rsp,*rsp=tss->rsp,
|
||||
*rbp_ptr=&tss->rbp,*rbp=tss->rbp,
|
||||
*rip_ptr=&tss->rip,*rip=tss->rip;
|
||||
|
||||
switch (tss->fault_num)
|
||||
{
|
||||
case 0: //if divide except
|
||||
//push rip as param to ThrowDivide
|
||||
rsp-=8;
|
||||
*rsp_ptr=rsp;
|
||||
rsp[1]=rip;
|
||||
*rip_ptr=&ThrowDivide;
|
||||
Btr(&tss->task_flags,TSSf_SUSPENDED);
|
||||
Exit;
|
||||
case 0x10:
|
||||
rsp-=8;
|
||||
*rsp_ptr=rsp;
|
||||
rsp[1]=rip;
|
||||
*rip_ptr=&ThrowFloating;
|
||||
Btr(&tss->task_flags,TSSf_SUSPENDED);
|
||||
Exit;
|
||||
}
|
||||
|
||||
/*
|
||||
Raw(ON);
|
||||
coutln "Faulting TSS:",tss," IRQ#",tss->fault_num;
|
||||
PrintF("Fault Location:%P\r\n",*rip);
|
||||
Raw(OFF);
|
||||
*/
|
||||
|
||||
UseConsoleLtf(NULL);
|
||||
Bts(&Fs->crt_flags,CRTf_SHOW);
|
||||
|
||||
coutln "Faulting TSS:",tss," IRQ#",tss->fault_num;
|
||||
CallerRep(rbp,tss);
|
||||
StackRep(rsp);
|
||||
coutln "$$LK,\"See HOME/Fault.CPZ\",\"FI:HOME/Fault.CPZ\"$$";
|
||||
Dasm(rip-0x20,0x20);
|
||||
|
||||
|
||||
Reference in new issue
Block a user