IDebugPendingBreakpoint2::Virtualize
Attiva/disattiva lo stato virtualizzato di questo punto di interruzione in sospeso. Quando viene virtualizzato un punto di interruzione in sospeso, il motore di debug tenterà di associarlo ogni volta che il nuovo codice viene caricato nel programma.
Sintassi
HRESULT Virtualize(
BOOL fVirtualize
);
int Virtualize(
int fVirtualize
);
Parametri
fVirtualize
[in] Impostare su diverso da zero (TRUE
) per virtualizzare il punto di interruzione in sospeso o su zero (FALSE
) per disattivare la virtualizzazione.
Valore restituito
Se ha esito positivo, restituisce S_OK
; in caso contrario, restituisce un codice di errore. Restituisce E_BP_DELETED
se il punto di interruzione è stato eliminato.
Osservazioni:
Un punto di interruzione virtualizzato viene associato ogni volta che viene caricato il codice.
Esempio
Nell'esempio seguente viene illustrato come implementare questo metodo per un oggetto semplice CPendingBreakpoint
che espone l'interfaccia IDebugPendingBreakpoint2 .
HRESULT CPendingBreakpoint::Virtualize(BOOL fVirtualize)
{
HRESULT hr;
// Verify that the pending breakpoint has not been deleted. If deleted,
// then return hr = E_BP_DELETED.
if (m_state.state != PBPS_DELETED)
{
if (fVirtualize)
{
// Set the PBPSF_VIRTUALIZED flag in the PENDING_BP_STATE_FLAGS
// structure.
SetFlag(m_state.flags, PBPSF_VIRTUALIZED);
}
else
{
// Clear the PBPSF_VIRTUALIZED flag in the PENDING_BP_STATE_FLAGS
// structure.
ClearFlag(m_state.flags, PBPSF_VIRTUALIZED);
}
hr = S_OK;
}
else
{
hr = E_BP_DELETED;
}
return hr;
}