Index: traphdlr.c =================================================================== --- ntoskrnl/ke/i386/traphdlr.c (revision 74238) +++ ntoskrnl/ke/i386/traphdlr.c (working copy) @@ -1299,7 +1299,22 @@ } #endif /* Check for VDM trap */ - ASSERT((KiVdmTrap(TrapFrame)) == FALSE); + if (KiVdmTrap(TrapFrame)) + { + const UCHAR *eip = (PVOID)TrapFrame->Eip; + DPRINT1("Status: %x\n", Status); + DPRINT1("EFlags: %x\n", TrapFrame->EFlags); + DPRINT1("SegCs: %x\n", TrapFrame->SegCs); + DPRINT1("Eip: %x\n", TrapFrame->Eip); + DPRINT1("ErrCode: %x\n", TrapFrame->ErrCode); + DPRINT1("Cr2: %x\n", Cr2); + DPRINT1("VdmObjects: %p\n", PsGetCurrentProcess()->VdmObjects); + DPRINT1("Eip bytes: %02x %02x %02x %02x\n", eip[-4], eip[-3], eip[-2], eip[-1]); + DPRINT1("Eip bytes: %02x %02x %02x %02x\n", eip[0], eip[1], eip[2], eip[3]); + DPRINT1("Eip bytes: %02x %02x %02x %02x\n", eip[4], eip[5], eip[6], eip[7]); + DPRINT1("Eip bytes: %02x %02x %02x %02x\n", eip[8], eip[9], eip[10], eip[11]); + ASSERT((KiVdmTrap(TrapFrame)) == FALSE); + } /* Either kernel or user trap (non VDM) so dispatch exception */ if (Status == STATUS_ACCESS_VIOLATION)