Condividi tramite


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;
}

Vedi anche