Partager via


ICorDebugUnmanagedCallback::DebugEvent, méthode

Notifie le débogueur qu’un événement natif s’est déclenché.

Syntaxe

HRESULT DebugEvent (
    [in] LPDEBUG_EVENT  pDebugEvent,
    [in] BOOL           fOutOfBand
);

Paramètres

pDebugEvent [in] Pointeur vers l’événement natif.

fOutOfBand [in] true, si l’interaction avec l’état du processus managé est impossible après un événement non managé, jusqu’à ce que le débogueur appelle ICorDebugController ::Continue ; sinon, false.

Notes

Si le thread en cours de débogage est un thread Win32, n’utilisez aucun membre de l’interface de débogage Win32. Vous pouvez appeler ICorDebugController::Continue uniquement sur un thread Win32 et uniquement lors de la poursuite d’un événement hors bande.

Le rappel DebugEvent ne suit pas les règles standard pour les rappels. Lorsque vous appelez DebugEvent, le processus est à l’état brut, le débogage du système d’exploitation est arrêté. Le processus ne sera pas synchronisé. Il entre automatiquement dans l’état synchronisé si nécessaire pour répondre aux demandes d’informations sur le code managé, ce qui peut entraîner d’autres rappels DebugEvent imbriqués.

Appelez ICorDebugProcess::ClearCurrentException sur le processus pour ignorer un événement d’exception avant de poursuivre le processus. L’appel de cette méthode envoie DBG_CONTINUE au lieu de DBG_EXCEPTION_NOT_HANDLED sur la requête de poursuite, et efface automatiquement les points d’arrêt hors bande et les exceptions à étape unique. Les événements hors bande peuvent se présenter à tout moment, même quand l’application en cours de débogage semble arrêtée et qu’un événement in-band en suspens existe déjà.

Dans .NET Framework version 2.0, le débogueur doit immédiatement continuer après un événement de point d’arrêt hors bande. Le débogueur doit utiliser les méthodes ICorDebugProcess2::SetUnmanagedBreakpoint et ICorDebugProcess2::ClearUnmanagedBreakpoint pour ajouter et supprimer des points d’arrêt. Ces méthodes ignorent automatiquement les points d’arrêt hors bande. Ainsi, les seuls points d’arrêt hors bande qui sont distribués doivent être des points d’arrêt bruts qui se trouvent déjà dans le flux d’instructions, comme un appel à la fonction Win32 DebugBreak. N’essayez pas d’utiliser ICorDebugProcess::ClearCurrentException, ICorDebugProcess::GetThreadContext, ICorDebugProcess::SetThreadContext, ou tout autre membre de l’API de débogage.

Configuration requise

Plateformes : Consultez Configuration requise.

En-tête : CorDebug.idl, CorDebug.h

Bibliothèque : CorGuids.lib

Versions de .NET Framework : Disponible à partir de la version 1.0

Voir aussi