Changeset 16110 in vbox for trunk/src/VBox
- Timestamp:
- Jan 21, 2009 1:37:45 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
r16084 r16110 601 601 #ifdef VBOX_STRICT 602 602 if (iGate == 0xE) 603 LogFlow(("VMXR0InjectEvent: Injecting interrupt %d at %RGv error code=%08x CR2=% 08xintInfo=%08x\n", iGate, (RTGCPTR)pCtx->rip, errCode, pCtx->cr2, intInfo));603 LogFlow(("VMXR0InjectEvent: Injecting interrupt %d at %RGv error code=%08x CR2=%RGv intInfo=%08x\n", iGate, (RTGCPTR)pCtx->rip, errCode, pCtx->cr2, intInfo)); 604 604 else 605 605 if (iGate < 0x20) … … 1088 1088 } 1089 1089 1090 #ifdef DEBUG 1090 #ifdef DEBUG /* till after branching, enable it by default then. */ 1091 1091 /* Intercept X86_XCPT_DB if stepping is enabled */ 1092 1092 if (DBGFIsStepping(pVM)) 1093 1093 u32TrapMask |= RT_BIT(X86_XCPT_DB); 1094 /** @todo Don't trap it unless the debugger has armed breakpoints. */ 1095 u32TrapMask |= RT_BIT(X86_XCPT_BP); 1094 1096 #endif 1095 1097 … … 2503 2505 break; 2504 2506 } 2507 2508 #ifdef DEBUG /* till after branching, enable by default after that. */ 2509 case X86_XCPT_BP: /* Breakpoint. */ 2510 { 2511 rc = DBGFR0Trap03Handler(pVM, CPUMCTX2CORE(pCtx)); 2512 if (rc == VINF_EM_RAW_GUEST_TRAP) 2513 { 2514 Log(("Guest #BP at %04x:%RGv\n", pCtx->cs, pCtx->rip)); 2515 rc = VMXR0InjectEvent(pVM, pVCpu, pCtx, VMX_VMCS_CTRL_ENTRY_IRQ_INFO_FROM_EXIT_INT_INFO(intInfo), cbInstr, errCode); 2516 AssertRC(rc); 2517 goto ResumeExecution; 2518 } 2519 if (rc == VINF_SUCCESS) 2520 goto ResumeExecution; 2521 Log(("Debugger BP at %04x:%RGv (rc=%Rrc)\n", pCtx->cs, pCtx->rip, rc)); 2522 break; 2523 } 2524 #endif 2505 2525 2506 2526 case X86_XCPT_GP: /* General protection failure exception.*/
Note:
See TracChangeset
for help on using the changeset viewer.