Udostępnij za pośrednictwem


IDebugPendingBreakpoint2::Virtualize

Przełącza zwirtualizowany stan tego oczekującego punktu przerwania. Gdy oczekujący punkt przerwania zostanie zwirtualizowany, aparat debugowania podejmie próbę powiązania go za każdym razem, gdy nowy kod zostanie załadowany do programu.

Składnia

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

Parametry

fVirtualize
[in] Ustaw wartość nonzero (TRUE), aby zwirtualizować oczekujący punkt przerwania lub zero (FALSE), aby wyłączyć wirtualizację.

Wartość zwracana

Jeśli operacja powiedzie się, zwraca wartość S_OK; w przeciwnym razie zwraca kod błędu. Zwraca wartość E_BP_DELETED , jeśli punkt przerwania został usunięty.

Uwagi

Zwirtualizowany punkt przerwania jest powiązany za każdym razem, gdy jest ładowany kod.

Przykład

W poniższym przykładzie pokazano, jak zaimplementować tę metodę dla prostego CPendingBreakpoint obiektu, który uwidacznia interfejs 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;
}

Zobacz też