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