[NTOS:KD] Change the way we detect if exception if from KernelMode/UserMode

CORE-17381
This commit is contained in:
Hervé Poussineau 2020-11-22 18:13:51 +01:00
parent 044be0e314
commit 1a3c607f53

View file

@ -56,7 +56,6 @@ static ULONG KdbgNextApiNumber = DbgKdContinueApi;
static CONTEXT KdbgContext; static CONTEXT KdbgContext;
static EXCEPTION_RECORD64 KdbgExceptionRecord; static EXCEPTION_RECORD64 KdbgExceptionRecord;
static BOOLEAN KdbgFirstChanceException; static BOOLEAN KdbgFirstChanceException;
static KPROCESSOR_MODE KdbgPreviousMode;
static NTSTATUS KdbgContinueStatus = STATUS_SUCCESS; static NTSTATUS KdbgContinueStatus = STATUS_SUCCESS;
/* LOCKING FUNCTIONS *********************************************************/ /* LOCKING FUNCTIONS *********************************************************/
@ -581,7 +580,6 @@ KdSendPacket(
KdbgNextApiNumber = DbgKdGetContextApi; KdbgNextApiNumber = DbgKdGetContextApi;
KdbgExceptionRecord = WaitStateChange->u.Exception.ExceptionRecord; KdbgExceptionRecord = WaitStateChange->u.Exception.ExceptionRecord;
KdbgFirstChanceException = WaitStateChange->u.Exception.FirstChance; KdbgFirstChanceException = WaitStateChange->u.Exception.FirstChance;
KdbgPreviousMode = ((PKTHREAD)(ULONG_PTR)WaitStateChange->Thread)->PreviousMode;
return; return;
} }
} }
@ -601,7 +599,7 @@ KdSendPacket(
} }
Result = KdbEnterDebuggerException(&KdbgExceptionRecord, Result = KdbEnterDebuggerException(&KdbgExceptionRecord,
KdbgPreviousMode, KdbgContext.SegCs & 1,
&KdbgContext, &KdbgContext,
KdbgFirstChanceException); KdbgFirstChanceException);
#else #else