Changeset 87776 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Feb 17, 2021 12:21:16 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 142832
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/DBGFAllBp.cpp
r87594 r87776 169 169 if (pBpOwnerR0) 170 170 { 171 VBOXSTRICTRC rcStrict = pBpOwnerR0->pfnBpHitR0(pVM, pVCpu->idCpu, pBpR0->pvUserR0, hBp, &pBp->Pub); 171 VBOXSTRICTRC rcStrict = VINF_SUCCESS; 172 173 if (DBGF_BP_PUB_IS_EXEC_BEFORE(&pBp->Pub)) 174 rcStrict = pBpOwnerR0->pfnBpHitR0(pVM, pVCpu->idCpu, pBpR0->pvUserR0, hBp, &pBp->Pub, DBGF_BP_F_HIT_EXEC_BEFORE); 172 175 if (rcStrict == VINF_SUCCESS) 173 176 { … … 181 184 abInstr[0] = pBp->Pub.u.Int3.bOrg; 182 185 rcStrict = IEMExecOneWithPrefetchedByPC(pVCpu, CPUMCTX2CORE(&pVCpu->cpum.GstCtx), GCPtrInstr, &abInstr[0], sizeof(abInstr)); 183 rc = VBOXSTRICTRC_VAL(rcStrict); 186 if ( rcStrict == VINF_SUCCESS 187 && DBGF_BP_PUB_IS_EXEC_AFTER(&pBp->Pub)) 188 { 189 rcStrict = pBpOwnerR0->pfnBpHitR0(pVM, pVCpu->idCpu, pBpR0->pvUserR0, hBp, &pBp->Pub, DBGF_BP_F_HIT_EXEC_AFTER); 190 if (rcStrict == VINF_SUCCESS) 191 rc = VINF_SUCCESS; 192 else if ( rcStrict == VINF_DBGF_BP_HALT 193 || rcStrict == VINF_DBGF_R3_BP_OWNER_DEFER) 194 { 195 pVCpu->dbgf.s.hBpActive = hBp; 196 if (rcStrict == VINF_DBGF_R3_BP_OWNER_DEFER) 197 pVCpu->dbgf.s.fBpInvokeOwnerCallback = true; 198 else 199 pVCpu->dbgf.s.fBpInvokeOwnerCallback = false; 200 } 201 else /* Guru meditation. */ 202 rc = VERR_DBGF_BP_OWNER_CALLBACK_WRONG_STATUS; 203 } 204 else 205 rc = VBOXSTRICTRC_VAL(rcStrict); 184 206 } 185 207 } … … 249 271 #endif 250 272 if ( pBp 251 && DBGF_BP_PUB_GET_TYPE( pBp->Pub.fFlagsAndType) == DBGFBPTYPE_INT3)273 && DBGF_BP_PUB_GET_TYPE(&pBp->Pub) == DBGFBPTYPE_INT3) 252 274 #ifdef IN_RING3 253 275 return dbgfBpHit(pVM, pVCpu, pRegFrame, hBp, pBp); … … 379 401 #endif 380 402 if ( pBp 381 && DBGF_BP_PUB_GET_TYPE( pBp->Pub.fFlagsAndType) == DBGFBPTYPE_INT3)403 && DBGF_BP_PUB_GET_TYPE(&pBp->Pub) == DBGFBPTYPE_INT3) 382 404 { 383 405 if (pBp->Pub.u.Int3.GCPtr == (RTGCUINTPTR)GCPtrBp)
Note:
See TracChangeset
for help on using the changeset viewer.