diff --git a/ntoskrnl/ke/amd64/kiinit.c b/ntoskrnl/ke/amd64/kiinit.c index 632634dc5af..b0ca6dd8b67 100644 --- a/ntoskrnl/ke/amd64/kiinit.c +++ b/ntoskrnl/ke/amd64/kiinit.c @@ -536,17 +536,8 @@ KiSystemStartup(IN PLOADER_PARAMETER_BLOCK LoaderBlock) /* Setup the IDT */ KeInitExceptions(); - - /* Initialize debugging system */ - KdInitSystem(0, KeLoaderBlock); - - /* Check for break-in */ - if (KdPollBreakIn()) DbgBreakPointWithStatus(DBG_STATUS_CONTROL_C); } - DPRINT1("Pcr = %p, Gdt = %p, Idt = %p, Tss = %p\n", - Pcr, Pcr->GdtBase, Pcr->IdtBase, Pcr->TssBase); - /* Acquire lock */ while (InterlockedBitTestAndSet64((PLONG64)&KiFreezeExecutionLock, 0)) { @@ -563,6 +554,18 @@ KiSystemStartup(IN PLOADER_PARAMETER_BLOCK LoaderBlock) /* Release lock */ InterlockedAnd64((PLONG64)&KiFreezeExecutionLock, 0); + if (Cpu == 0) + { + /* Initialize debugging system */ + KdInitSystem(0, KeLoaderBlock); + + /* Check for break-in */ + if (KdPollBreakIn()) DbgBreakPointWithStatus(DBG_STATUS_CONTROL_C); + } + + DPRINT1("Pcr = %p, Gdt = %p, Idt = %p, Tss = %p\n", + Pcr, Pcr->GdtBase, Pcr->IdtBase, Pcr->TssBase); + /* Raise to HIGH_LEVEL */ KfRaiseIrql(HIGH_LEVEL);