IDebugEngine2::CreatePendingBreakpoint

Erstellt einen ausstehenden Haltepunkt im Debugmodul (DE).

Syntax

int CreatePendingBreakpoint(
    IDebugBreakpointRequest2     pBPRequest,
    out IDebugPendingBreakpoint2 ppPendingBP
);

Parameter

pBPRequest
[in] Ein IDebugBreakpointRequest2-Objekt , das den ausstehenden Haltepunkt beschreibt, der erstellt werden soll.

ppPendingBP
[out] Gibt ein IDebugPendingBreakpoint2 -Objekt zurück, das den ausstehenden Haltepunkt darstellt.

Rückgabewert

Wenn die Ausführung erfolgreich ist, wird S_OK, andernfalls ein Fehlercode zurückgegeben. Gibt in der Regel zurück E_FAIL , wenn der pBPRequest Parameter keiner sprache entspricht, die von der DE unterstützt wird, wenn der pBPRequest Parameter ungültig oder unvollständig ist.

Hinweise

Ein ausstehender Haltepunkt ist im Wesentlichen eine Sammlung aller Informationen, die zum Binden eines Haltepunkts an Code erforderlich sind. Der ausstehende Haltepunkt, der von dieser Methode zurückgegeben wird, ist erst an Code gebunden, wenn die Bind-Methode aufgerufen wird.

Für jeden ausstehenden Haltepunkt, den der Benutzer festlegt, ruft der Sitzungsdebug-Manager (SDM) diese Methode in jeder angefügten DE auf. Es liegt bei der DE, zu überprüfen, ob der Haltepunkt für Programme gültig ist, die in dieser DE ausgeführt werden.

Wenn der Benutzer einen Haltepunkt in einer Codezeile festlegt, kann die DE den Haltepunkt an die nächstgelegene Zeile im Dokument binden, die diesem Code entspricht. Dadurch kann der Benutzer einen Haltepunkt in der ersten Zeile einer mehrzeiligen Anweisung festlegen, aber an die letzte Zeile binden (wobei der gesamte Code in den Debuginformationen zugeordnet wird).

Beispiel

Das folgende Beispiel zeigt, wie Sie diese Methode für ein einfaches CProgram Objekt implementieren. Die Implementierung der IDebugEngine2::CreatePendingBreakpoint DE könnte dann alle Aufrufe an diese Implementierung der Methode in jedem Programm weiterleiten.

HRESULT CProgram::CreatePendingBreakpoint(IDebugBreakpointRequest2* pBPRequest, IDebugPendingBreakpoint2** ppPendingBP)
{
    // Create and initialize the CPendingBreakpoint object.
    CComObject<CPendingBreakpoint> *pPending;
    CComObject<CPendingBreakpoint>::CreateInstance(&pPending);
    pPending->Initialize(pBPRequest, m_pInterp, m_pCallback, m_pEngine);
    return pPending->QueryInterface(ppPendingBP);
}

Siehe auch