- 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
This commit is contained in:
Stefan Ginsberg 2009-10-31 13:46:16 +00:00
parent 8d6e247698
commit f0b7ff43ff

View file

@ -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)
//