From f0b7ff43ff95149734dce7cdedf0e76427f17591 Mon Sep 17 00:00:00 2001 From: Stefan Ginsberg Date: Sat, 31 Oct 2009 13:46:16 +0000 Subject: [PATCH] - Don't define the SizePcr entry to the size of the PCR PLUS the PRCB SIZE! The PRCB size is already defined in the SizePrcb entry. - Likewise, the OffsetPrcbProcStateSpecialReg entry defines the offset to the special registers in the PRCB, not a PCR + PRCB offset + special registers offset! This can only have worked on x86 and AMD64 if WinDbg uses a hard coded offset, but define it correctly anyway. - The OffsetPcrSelfPcr and OffsetPcrContainedPrcb entries are not applicable for ARM, so define them to 0 for it. svn path=/trunk/; revision=43871 --- reactos/ntoskrnl/kd64/kddata.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/reactos/ntoskrnl/kd64/kddata.c b/reactos/ntoskrnl/kd64/kddata.c index 512725dd67b..4228c8164da 100644 --- a/reactos/ntoskrnl/kd64/kddata.c +++ b/reactos/ntoskrnl/kd64/kddata.c @@ -36,9 +36,9 @@ VOID NTAPI RtlpBreakWithStatusInstruction(VOID); #elif defined(_M_ARM) -//#define KPCR_SELF_OFFSET +#define KPCR_SELF_OFFSET 0 #define KPCR_CURRENT_PRCB_OFFSET FIELD_OFFSET(KPCR, Prcb) -//#define KPCR_CONTAINED_PRCB_OFFSET +#define KPCR_CONTAINED_PRCB_OFFSET 0 #else #error Unsupported Architecture @@ -485,7 +485,7 @@ KDDEBUGGER_DATA64 KdDebuggerDataBlock = {(ULONG_PTR)KdPrintDefaultCircularBuffer}, {(ULONG_PTR)&KdPrintBufferSize}, {(ULONG_PTR)&KeLoaderBlock}, - sizeof(KPCR) + sizeof(KPRCB), + sizeof(KPCR), KPCR_SELF_OFFSET, KPCR_CURRENT_PRCB_OFFSET, KPCR_CONTAINED_PRCB_OFFSET, @@ -494,7 +494,6 @@ KDDEBUGGER_DATA64 KdDebuggerDataBlock = 0, 0, 0, - KPCR_CONTAINED_PRCB_OFFSET + FIELD_OFFSET(KPRCB, ProcessorState.SpecialRegisters), #if defined(_M_IX86) //