KdpReportExceptionStateChange(
IN PEXCEPTION_RECORD ExceptionRecord,
IN OUT PCONTEXT Context,
+#ifndef _WINKD_
+ IN PKTRAP_FRAME TrapFrame,
+ IN KPROCESSOR_MODE PreviousMode,
+#endif
IN BOOLEAN SecondChanceException
);
BOOLEAN
NTAPI
-KdpReport(IN PKTRAP_FRAME TrapFrame,
- IN PKEXCEPTION_FRAME ExceptionFrame,
- IN PEXCEPTION_RECORD ExceptionRecord,
- IN PCONTEXT ContextRecord,
- IN KPROCESSOR_MODE PreviousMode,
- IN BOOLEAN SecondChanceException)
+KdpReportExceptionStateChange(IN PEXCEPTION_RECORD ExceptionRecord,
+ IN OUT PCONTEXT ContextRecord,
+ IN PKTRAP_FRAME TrapFrame,
+ IN KPROCESSOR_MODE PreviousMode,
+ IN BOOLEAN SecondChanceException)
{
KD_CONTINUE_TYPE Return = kdHandleException;
-
#ifdef KDBG
/* Check if this is an assertion failure */
if (ExceptionRecord->ExceptionCode == STATUS_ASSERTION_FAILURE)
/* Call the Wrapper Init Routine */
if (WrapperInitRoutine)
WrapperTable.KdpInitRoutine(&WrapperTable, 1);
+
+ NtGlobalFlag |= FLG_STOP_ON_EXCEPTION;
+
return STATUS_SUCCESS;
}
}
#endif
+#ifdef _WINKD_
BOOLEAN
NTAPI
KdpReportExceptionStateChange(IN PEXCEPTION_RECORD ExceptionRecord,
IN OUT PCONTEXT Context,
IN BOOLEAN SecondChanceException)
{
-#ifdef _WINKD_
STRING Header, Data;
DBGKD_ANY_WAIT_STATE_CHANGE WaitStateChange;
KCONTINUE_STATUS Status;
/* Return */
return Status;
-#else
- UNIMPLEMENTED;
- return FALSE;
-#endif
}
+#endif
VOID
NTAPI
/* Report a state change */
Status = KdpReportExceptionStateChange(ExceptionRecord,
ContextRecord,
+#ifndef _WINKD_
+ NULL,
+ KernelMode,
+#endif
SecondChanceException);
/* Restore the port data and return */
/* FUNCTIONS *****************************************************************/
-#ifndef _WINKD_
-BOOLEAN
-NTAPI
-KdpReport(IN PKTRAP_FRAME TrapFrame,
- IN PKEXCEPTION_FRAME ExceptionFrame,
- IN PEXCEPTION_RECORD ExceptionRecord,
- IN PCONTEXT ContextRecord,
- IN KPROCESSOR_MODE PreviousMode,
- IN BOOLEAN SecondChanceException);
-#else
BOOLEAN
NTAPI
KdpReport(IN PKTRAP_FRAME TrapFrame,
Handled = KdpReportExceptionStateChange(ExceptionRecord,
&Prcb->ProcessorState.
ContextFrame,
+#ifndef _WINKD_
+ TrapFrame,
+ PreviousMode,
+#endif
SecondChanceException);
/* Now restore the processor state, manually again. */
KdpControlCPressed = FALSE;
return Handled;
}
-#endif
BOOLEAN
NTAPI