Go to the source code of this file.
◆ DeInstallDblFltHook()
Definition at line 117 of file dblflt.c.
ULONG SetGlobalInt(ULONG dwInt, ULONG NewIntHandler)
BOOLEAN RemoveAllSWBreakpoints(BOOLEAN bEvenPermanents)
Referenced by CleanUpPICE().
◆ InstallDblFltHook()
Definition at line 93 of file dblflt.c.
95 ULONG LocalDblFltHandler;
102 __asm__(
"mov $NewDblFltHandler,%0" 103 :
"=r" (LocalDblFltHandler)
ULONG SetGlobalInt(ULONG dwInt, ULONG NewIntHandler)
__asm__(" \
NewDblFltHandler:\n\t \
pushfl\n\t \
cli;\n\t \
cld;\n\t \
pushal;\n\t \
pushl %ds;\n\t \
\n\t \
// setup default data selectors\n\t \
movw %ss,%ax\n\t \
movw %ax,%ds\n\t \
\n\t \
// get frame ptr\n\t \
lea 40(%esp),%eax\n\t \
pushl %eax\n\t \
call _HandleDoubleFault\n\t \
addl $4,%esp\n\t \
\n\t \
popl %ds\n\t \
popal\n\t \
popfl\n\t \
// remove error code from stack and replace with reason code\n\t \
movl $" STR(REASON_DOUBLE_FAULT) ",(%esp)\n\t \
// call debugger loop\n\t \
jmp NewInt31Handler\n\t")
Referenced by InitPICE().