Changeset 10537 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Jul 11, 2008 4:23:47 PM (17 years ago)
- svn:sync-xref-src-repo-rev:
- 33222
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/HWACCMInternal.h
r10510 r10537 405 405 406 406 #ifdef VBOX_STRICT 407 HWACCMR0DECL(void) HWACCMDumpRegs(P CPUMCTX pCtx);407 HWACCMR0DECL(void) HWACCMDumpRegs(PVM pVM, PCPUMCTX pCtx); 408 408 HWACCMR0DECL(void) HWACCMR0DumpDescriptor(PX86DESCHC Desc, RTSEL Sel, const char *pszMsg); 409 409 #else 410 #define HWACCMDumpRegs(a )do { } while (0)410 #define HWACCMDumpRegs(a, b) do { } while (0) 411 411 #define HWACCMR0DumpDescriptor(a, b, c) do { } while (0) 412 412 #endif -
trunk/src/VBox/VMM/VMMR0/HWACCMR0.cpp
r10502 r10537 945 945 * Formats a full register dump. 946 946 * 947 * @param pVM The VM to operate on. 947 948 * @param pCtx The context to format. 948 949 */ 949 HWACCMR0DECL(void) HWACCMDumpRegs(P CPUMCTX pCtx)950 HWACCMR0DECL(void) HWACCMDumpRegs(PVM pVM, PCPUMCTX pCtx) 950 951 { 951 952 /* … … 992 993 * Format the registers. 993 994 */ 994 Log(("eax=%08x ebx=%08x ecx=%08x edx=%08x esi=%08x edi=%08x\n" 995 "eip=%08x esp=%08x ebp=%08x iopl=%d %*s\n" 996 "cs={%04x base=%VGv limit=%08x flags=%08x} dr0=%08RX64 dr1=%08RX64\n" 997 "ds={%04x base=%VGv limit=%08x flags=%08x} dr2=%08RX64 dr3=%08RX64\n" 998 "es={%04x base=%VGv limit=%08x flags=%08x} dr4=%08RX64 dr5=%08RX64\n" 999 "fs={%04x base=%VGv limit=%08x flags=%08x} dr6=%08RX64 dr7=%08RX64\n" 1000 , 1001 pCtx->eax, pCtx->ebx, pCtx->ecx, pCtx->edx, pCtx->esi, pCtx->edi, 1002 pCtx->eip, pCtx->esp, pCtx->ebp, X86_EFL_GET_IOPL(efl), 31, szEFlags, 1003 (RTSEL)pCtx->cs, pCtx->csHid.u64Base, pCtx->csHid.u32Limit, pCtx->csHid.Attr.u, pCtx->dr0, pCtx->dr1, 1004 (RTSEL)pCtx->ds, pCtx->dsHid.u64Base, pCtx->dsHid.u32Limit, pCtx->dsHid.Attr.u, pCtx->dr2, pCtx->dr3, 1005 (RTSEL)pCtx->es, pCtx->esHid.u64Base, pCtx->esHid.u32Limit, pCtx->esHid.Attr.u, pCtx->dr4, pCtx->dr5, 1006 (RTSEL)pCtx->fs, pCtx->fsHid.u64Base, pCtx->fsHid.u32Limit, pCtx->fsHid.Attr.u, pCtx->dr6, pCtx->dr7)); 1007 1008 Log(("gs={%04x base=%VGv limit=%08x flags=%08x} cr0=%08RX64 cr2=%08RX64\n" 1009 "ss={%04x base=%VGv limit=%08x flags=%08x} cr3=%08RX64 cr4=%08RX64\n" 1010 "gdtr=%08x:%04x idtr=%08x:%04x eflags=%08x\n" 1011 "ldtr={%04x base=%VGv limit=%08x flags=%08x}\n" 1012 "tr ={%04x base=%VGv limit=%08x flags=%08x}\n" 1013 "SysEnter={cs=%04llx eip=%08llx esp=%08llx}\n" 1014 "FCW=%04x FSW=%04x FTW=%04x\n", 1015 (RTSEL)pCtx->gs, pCtx->gsHid.u64Base, pCtx->gsHid.u32Limit, pCtx->gsHid.Attr.u, pCtx->cr0, pCtx->cr2, 1016 (RTSEL)pCtx->ss, pCtx->ssHid.u64Base, pCtx->ssHid.u32Limit, pCtx->ssHid.Attr.u, pCtx->cr3, pCtx->cr4, 1017 pCtx->gdtr.pGdt, pCtx->gdtr.cbGdt, pCtx->idtr.pIdt, pCtx->idtr.cbIdt, efl, 1018 (RTSEL)pCtx->ldtr, pCtx->ldtrHid.u64Base, pCtx->ldtrHid.u32Limit, pCtx->ldtrHid.Attr.u, 1019 (RTSEL)pCtx->tr, pCtx->trHid.u64Base, pCtx->trHid.u32Limit, pCtx->trHid.Attr.u, 1020 pCtx->SysEnter.cs, pCtx->SysEnter.eip, pCtx->SysEnter.esp, 1021 pCtx->fpu.FCW, pCtx->fpu.FSW, pCtx->fpu.FTW)); 1022 995 if (CPUMIsGuestIn64BitCode(pVM, CPUMCTX2CORE(pCtx))) 996 { 997 Log(("rax=%016RX64 rbx=%016RX64 rcx=%016RX64 rdx=%016RX64\n" 998 "rsi=%016RX64 rdi=%016RX64 r8 =%016RX64 r9 =%016RX64\n" 999 "r10=%016RX64 r11=%016RX64 r12=%016RX64 r13=%016RX64\n" 1000 "r14=%016RX64 r15=%016RX64\n" 1001 "rip=%016RX64 rsp=%016RX64 rbp=%016RX64 iopl=%d %*s\n" 1002 "cs={%04x base=%016RX64 limit=%08x flags=%08x}\n" 1003 "ds={%04x base=%016RX64 limit=%08x flags=%08x}\n" 1004 "es={%04x base=%016RX64 limit=%08x flags=%08x}\n" 1005 "fs={%04x base=%016RX64 limit=%08x flags=%08x}\n" 1006 "gs={%04x base=%016RX64 limit=%08x flags=%08x}\n" 1007 "ss={%04x base=%016RX64 limit=%08x flags=%08x}\n" 1008 "cr0=%016RX64 cr2=%016RX64 cr3=%016RX64 cr4=%016RX64\n" 1009 "dr0=%016RX64 dr1=%016RX64 dr2=%016RX64 dr3=%016RX64\n" 1010 "dr4=%016RX64 dr5=%016RX64 dr6=%016RX64 dr7=%016RX64\n" 1011 "gdtr=%016RX64:%04x idtr=%016RX64:%04x eflags=%08x\n" 1012 "ldtr={%04x base=%08RX64 limit=%08x flags=%08x}\n" 1013 "tr ={%04x base=%08RX64 limit=%08x flags=%08x}\n" 1014 "SysEnter={cs=%04llx eip=%08llx esp=%08llx}\n" 1015 , 1016 pCtx->rax, pCtx->rbx, pCtx->rcx, pCtx->rdx, pCtx->rsi, pCtx->rdi, 1017 pCtx->r8, pCtx->r9, pCtx->r10, pCtx->r11, pCtx->r12, pCtx->r13, 1018 pCtx->r14, pCtx->r15, 1019 pCtx->rip, pCtx->rsp, pCtx->rbp, X86_EFL_GET_IOPL(efl), 31, szEFlags, 1020 (RTSEL)pCtx->cs, pCtx->csHid.u64Base, pCtx->csHid.u32Limit, pCtx->csHid.Attr.u, 1021 (RTSEL)pCtx->ds, pCtx->dsHid.u64Base, pCtx->dsHid.u32Limit, pCtx->dsHid.Attr.u, 1022 (RTSEL)pCtx->es, pCtx->esHid.u64Base, pCtx->esHid.u32Limit, pCtx->esHid.Attr.u, 1023 (RTSEL)pCtx->fs, pCtx->fsHid.u64Base, pCtx->fsHid.u32Limit, pCtx->fsHid.Attr.u, 1024 (RTSEL)pCtx->gs, pCtx->gsHid.u64Base, pCtx->gsHid.u32Limit, pCtx->gsHid.Attr.u, 1025 (RTSEL)pCtx->ss, pCtx->ssHid.u64Base, pCtx->ssHid.u32Limit, pCtx->ssHid.Attr.u, 1026 pCtx->cr0, pCtx->cr2, pCtx->cr3, pCtx->cr4, 1027 pCtx->dr0, pCtx->dr1, pCtx->dr2, pCtx->dr3, 1028 pCtx->dr4, pCtx->dr5, pCtx->dr6, pCtx->dr7, 1029 pCtx->gdtr.pGdt, pCtx->gdtr.cbGdt, pCtx->idtr.pIdt, pCtx->idtr.cbIdt, efl, 1030 (RTSEL)pCtx->ldtr, pCtx->ldtrHid.u64Base, pCtx->ldtrHid.u32Limit, pCtx->ldtrHid.Attr.u, 1031 (RTSEL)pCtx->tr, pCtx->trHid.u64Base, pCtx->trHid.u32Limit, pCtx->trHid.Attr.u, 1032 pCtx->SysEnter.cs, pCtx->SysEnter.eip, pCtx->SysEnter.esp)); 1033 } 1034 else 1035 Log(("eax=%08x ebx=%08x ecx=%08x edx=%08x esi=%08x edi=%08x\n" 1036 "eip=%08x esp=%08x ebp=%08x iopl=%d %*s\n" 1037 "cs={%04x base=%016RX64 limit=%08x flags=%08x} dr0=%08RX64 dr1=%08RX64\n" 1038 "ds={%04x base=%016RX64 limit=%08x flags=%08x} dr2=%08RX64 dr3=%08RX64\n" 1039 "es={%04x base=%016RX64 limit=%08x flags=%08x} dr4=%08RX64 dr5=%08RX64\n" 1040 "fs={%04x base=%016RX64 limit=%08x flags=%08x} dr6=%08RX64 dr7=%08RX64\n" 1041 "gs={%04x base=%016RX64 limit=%08x flags=%08x} cr0=%08RX64 cr2=%08RX64\n" 1042 "ss={%04x base=%016RX64 limit=%08x flags=%08x} cr3=%08RX64 cr4=%08RX64\n" 1043 "gdtr=%016RX64:%04x idtr=%016RX64:%04x eflags=%08x\n" 1044 "ldtr={%04x base=%08RX64 limit=%08x flags=%08x}\n" 1045 "tr ={%04x base=%08RX64 limit=%08x flags=%08x}\n" 1046 "SysEnter={cs=%04llx eip=%08llx esp=%08llx}\n" 1047 , 1048 pCtx->eax, pCtx->ebx, pCtx->ecx, pCtx->edx, pCtx->esi, pCtx->edi, 1049 pCtx->eip, pCtx->esp, pCtx->ebp, X86_EFL_GET_IOPL(efl), 31, szEFlags, 1050 (RTSEL)pCtx->cs, pCtx->csHid.u64Base, pCtx->csHid.u32Limit, pCtx->csHid.Attr.u, pCtx->dr0, pCtx->dr1, 1051 (RTSEL)pCtx->ds, pCtx->dsHid.u64Base, pCtx->dsHid.u32Limit, pCtx->dsHid.Attr.u, pCtx->dr2, pCtx->dr3, 1052 (RTSEL)pCtx->es, pCtx->esHid.u64Base, pCtx->esHid.u32Limit, pCtx->esHid.Attr.u, pCtx->dr4, pCtx->dr5, 1053 (RTSEL)pCtx->fs, pCtx->fsHid.u64Base, pCtx->fsHid.u32Limit, pCtx->fsHid.Attr.u, pCtx->dr6, pCtx->dr7, 1054 (RTSEL)pCtx->gs, pCtx->gsHid.u64Base, pCtx->gsHid.u32Limit, pCtx->gsHid.Attr.u, pCtx->cr0, pCtx->cr2, 1055 (RTSEL)pCtx->ss, pCtx->ssHid.u64Base, pCtx->ssHid.u32Limit, pCtx->ssHid.Attr.u, pCtx->cr3, pCtx->cr4, 1056 pCtx->gdtr.pGdt, pCtx->gdtr.cbGdt, pCtx->idtr.pIdt, pCtx->idtr.cbIdt, efl, 1057 (RTSEL)pCtx->ldtr, pCtx->ldtrHid.u64Base, pCtx->ldtrHid.u32Limit, pCtx->ldtrHid.Attr.u, 1058 (RTSEL)pCtx->tr, pCtx->trHid.u64Base, pCtx->trHid.u32Limit, pCtx->trHid.Attr.u, 1059 pCtx->SysEnter.cs, pCtx->SysEnter.eip, pCtx->SysEnter.esp)); 1060 1061 Log(("FPU:\n" 1062 "FCW=%04x FSW=%04x FTW=%02x\n" 1063 "res1=%02x FOP=%04x FPUIP=%08x CS=%04x Rsvrd1=%04x\n" 1064 "FPUDP=%04x DS=%04x Rsvrd2=%04x MXCSR=%08x MXCSR_MASK=%08x\n" 1065 , 1066 pCtx->fpu.FCW, pCtx->fpu.FSW, pCtx->fpu.FTW, 1067 pCtx->fpu.huh1, pCtx->fpu.FOP, pCtx->fpu.FPUIP, pCtx->fpu.CS, pCtx->fpu.Rsvrd1, 1068 pCtx->fpu.FPUDP, pCtx->fpu.DS, pCtx->fpu.Rsrvd2, 1069 pCtx->fpu.MXCSR, pCtx->fpu.MXCSR_MASK)); 1070 1071 1072 Log(("MSR:\n" 1073 "EFER =%016RX64\n" 1074 "PAT =%016RX64\n" 1075 "STAR =%016RX64\n" 1076 "CSTAR =%016RX64\n" 1077 "LSTAR =%016RX64\n" 1078 "SFMASK =%016RX64\n" 1079 "KERNELGSBASE =%016RX64\n", 1080 pCtx->msrEFER, 1081 pCtx->msrPAT, 1082 pCtx->msrSTAR, 1083 pCtx->msrCSTAR, 1084 pCtx->msrLSTAR, 1085 pCtx->msrSFMASK, 1086 pCtx->msrKERNELGSBASE)); 1023 1087 1024 1088 } -
trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp
r10509 r10537 981 981 if (exitCode == (uint64_t)SVM_EXIT_INVALID) /* Invalid guest state. */ 982 982 { 983 HWACCMDumpRegs(p Ctx);983 HWACCMDumpRegs(pVM, pCtx); 984 984 #ifdef DEBUG 985 985 Log(("ctrl.u16InterceptRdCRx %x\n", pVMCB->ctrl.u16InterceptRdCRx)); -
trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
r10502 r10537 1494 1494 #ifdef VBOX_STRICT 1495 1495 if (exitReason == VMX_EXIT_ERR_INVALID_GUEST_STATE) 1496 HWACCMDumpRegs(p Ctx);1496 HWACCMDumpRegs(pVM, pCtx); 1497 1497 #endif 1498 1498
Note:
See TracChangeset
for help on using the changeset viewer.