Changeset 47682 in vbox for trunk/src/VBox
- Timestamp:
- Aug 12, 2013 10:57:18 PM (11 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/DBGFAll.cpp
r47681 r47682 177 177 VMM_INT_DECL(VBOXSTRICTRC) DBGFBpCheckIo(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx, RTIOPORT uIoPort, uint8_t cbValue) 178 178 { 179 static uint8_t const s_abInvAlign[4] = { 0, 1, 7, 3 };180 179 uint32_t const uIoPortFirst = uIoPort; 181 180 uint32_t const uIoPortLast = uIoPortFirst + cbValue - 1; -
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r47681 r47682 9155 9155 * Note that the I/O breakpoint type is undefined if CR4.DE is 0. 9156 9156 */ 9157 /** @todo We're not honoring I/O BPs if informational status code is returned.9158 * We're also ignoring our own debugger's attempt at using I/O9159 * breakpoints. The whole host & guest debugger stuff needs to be9160 * looked over at some point. For now, it's just best effort. */9161 9157 int rc2 = hmR0VmxSaveGuestDR7(pVCpu, pMixedCtx); 9162 9158 AssertRCReturn(rc2, rc2); 9163 9159 9160 /** @todo Optimize away the DBGFBpIsHwIoArmed call by having DBGF tell the 9161 * execution engines about whether hyper BPs and such are pending. */ 9164 9162 uint32_t const uDr7 = pMixedCtx->dr[7]; 9165 if ( ( (uDr7 & X86_DR7_ENABLED_MASK)9166 && X86_DR7_ANY_RW_IO(uDr7)9167 && (pMixedCtx->cr4 & X86_CR4_DE))9168 || DBGFBpIsHwIoArmed(pVM))9163 if (RT_UNLIKELY( ( (uDr7 & X86_DR7_ENABLED_MASK) 9164 && X86_DR7_ANY_RW_IO(uDr7) 9165 && (pMixedCtx->cr4 & X86_CR4_DE)) 9166 || DBGFBpIsHwIoArmed(pVM))) 9169 9167 { 9170 9168 STAM_COUNTER_INC(&pVCpu->hm.s.StatDRxIoCheck);
Note:
See TracChangeset
for help on using the changeset viewer.