Share via


IDebugPendingBreakpoint2::Virtualize

Schaltet den virtualisierten Zustand dieses ausstehenden Haltepunkts um. Wenn ein ausstehender Haltepunkt virtualisiert wird, versucht das Debugmodul, es jedes Mal zu binden, wenn neuer Code in das Programm geladen wird.

Syntax

HRESULT Virtualize(
    BOOL fVirtualize
);
int Virtualize(
    int fVirtualize
);

Parameter

fVirtualize
[in] Legen Sie auf "nonzero (TRUE) fest, um den ausstehenden Haltepunkt zu virtualisieren, oder auf Null (FALSE), um die Virtualisierung zu deaktivieren.

Rückgabewert

Wenn die Ausführung erfolgreich ist, wird S_OK, andernfalls ein Fehlercode zurückgegeben. Gibt zurück E_BP_DELETED , wenn der Haltepunkt gelöscht wurde.

Hinweise

Ein virtualisierter Haltepunkt ist jedes Mal gebunden, wenn Code geladen wird.

Beispiel

Das folgende Beispiel zeigt, wie Sie diese Methode für ein einfaches CPendingBreakpoint Objekt implementieren, das die IDebugPendingBreakpoint2-Schnittstelle verfügbar macht.

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

Siehe auch