2010-04-21 14:26:36 UTC
I want to do remote debugging with a new HW platform via serial
interface, but I lose the connection to the remote machine during (or
after?) the boot sequence.
Initially, I have connection to the target from within WinDbg (both
This is true for any of the following:
1. If I request initial brakpoint at boot or on first module load
2. If I load a PNP driver with KdBreakPoint() in DriverEntry
3. Ctrl-Break in during the "early" stages
However, once the system startup is nearly complete (~~ at the time
Windows switches from the Windows Logo screen (black background) to
the colored login screen) I lose the KD:
1. I cannot Ctrl-Break in the KD anymore (but the target does not
freeze, as reported in another thread here)
2. If I had set a breakpoint on a IOCTL handler in my driver before
and it is hit, the system hangs
3. No DbgPrint() is sent to WinDbg
I first thought this might be due to Windows 7 and/or the dual-core/HT
CPU, however, I can also reproduce this on XP and with only one CPU
core enabled and Hyperthreading disabled.
I did some research and I know that the KD uses a polled communication
(at least when debugging over serial) triggered by the update of the
system timer. I tested both COM1 and COM2 against my debugging host
with Hyperterminal and found they are working fine.
I tried to dig into the nt!KdPollBreakIn procedure called by nt!
KeUpdateSystemTime but debugging the KD debug routines is not a very
good idea and not of much success.
So the question is: what is changing at the time Windows switches to
the colored login screen that damages communication?
My target machine is a EFI platform with 64-bit Dual Core CPU with HT.
I get this behaviour with XP and Win7, both 32-bit and 64-bit OS
Any help appreciated!
Thanks in advance! Gernot