Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Benachrichtigt den Debugger, dass ein systemeigenes Ereignis ausgelöst wurde.
Syntax
HRESULT DebugEvent (
[in] LPDEBUG_EVENT pDebugEvent,
[in] BOOL fOutOfBand
);
Die Parameter
pDebugEvent [in] Ein Zeiger auf das systemeigene Ereignis.
fOutOfBand [in] true, wenn die Interaktion mit dem verwalteten Prozessstatus nach einem nicht verwalteten Ereignis unmöglich ist, bis der Debugger ICorDebugController::Continue aufruft; andernfalls false.
Bemerkungen
Wenn der thread, der gedebuggt wird, ein Win32-Thread ist, verwenden Sie keine Member der Win32-Debugschnittstelle. Sie können nur einen Win32-Thread aufrufen ICorDebugController::Continue und nur dann, wenn Sie über ein Out-of-Band-Ereignis fortfahren.
Der DebugEvent Rückruf entspricht nicht den Standardregeln für Rückrufe. Wenn Sie aufrufen DebugEvent, befindet sich der Prozess im unformatierten Zustand des Betriebssystemdebugs. Der Prozess wird nicht synchronisiert. Er wechselt automatisch in den synchronisierten Zustand, wenn dies erforderlich ist, um Anforderungen für Informationen zu verwaltetem Code zu erfüllen, was zu anderen geschachtelten DebugEvent Rückrufen führen kann.
Rufen Sie ICorDebugProcess::ClearCurrentException für den Prozess auf, um ein Ausnahmeereignis zu ignorieren, bevor Sie den Prozess fortsetzen. Das Aufrufen dieser Methode sendet DBG_CONTINUE anstelle von DBG_EXCEPTION_NOT_HANDLED für die Fortsetzungsanforderung und löscht automatisch Out-of-Band-Haltepunkte und Einzelschrittausnahmen. Out-of-Band-Ereignisse können jederzeit auftreten, auch wenn die zu debuggende Anwendung angehalten wird und wenn bereits ein herausragendes In-Band-Ereignis vorhanden ist.
Der Debugger sollte sofort über ein Out-of-Band-Breakpoint-Ereignis hinaus fortgesetzt werden. Der Debugger sollte die Methoden "ICorDebugProcess2::SetUnmanagedBreakpoint " und "ICorDebugProcess2::ClearUnmanagedBreakpoint " verwenden, um Haltepunkte hinzuzufügen und zu entfernen. Diese Methoden überspringen alle Out-of-Band-Haltepunkte automatisch. Daher sollten die einzigen Out-of-Band-Haltepunkte, die verteilt werden, unformatierte Haltepunkte sein, die sich bereits im Anweisungsstream befinden, z. B. ein Aufruf der Win32-Funktion DebugBreak . Versuchen Sie nicht, ICorDebugProcess::GetThreadContext, ICorDebugProcess::SetThreadContext oder ein anderes Element der Debug-API zu verwendenICorDebugProcess::ClearCurrentException.
Anforderungen
Plattformen: Siehe .NET unterstützte Betriebssysteme.
Kopfball: CorDebug.idl, CorDebug.h
Bibliothek: CorGuids.lib
.NET-Versionen: Verfügbar seit .NET Framework 1.0