Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Avertit le débogueur qu’un événement natif a été 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.
Remarques
Si le thread en cours de débogage est un thread Win32, n’utilisez aucun membre de l’interface de débogage Win32. Vous ne pouvez appeler ICorDebugController::Continue qu’un thread Win32 et uniquement lors de la poursuite d’un événement hors bande.
Le DebugEvent rappel ne respecte pas les règles standard pour les rappels. Lorsque vous appelez DebugEvent, le processus est dans l’état brut, le débogage du système d’exploitation est arrêté. Le processus ne sera pas synchronisé. Il entre automatiquement l’état synchronisé si nécessaire pour satisfaire les demandes d’informations sur le code managé, ce qui peut entraîner d’autres rappels imbriqués DebugEvent .
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 continue, et efface automatiquement les points d’arrêt hors bande et les exceptions à étape unique. Les événements hors bande peuvent arriver à tout moment, même lorsque l’application en cours de débogage apparaît arrêtée et lorsqu’un événement in-band en suspens existe déjà.
Le débogueur doit immédiatement passer 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, tels qu’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.
Spécifications
Plates-formes: Consultez les systèmes d’exploitation pris en charge par .NET.
En-tête: CorDebug.idl, CorDebug.h
Bibliothèque: CorGuids.lib
Versions de .NET : Disponible depuis .NET Framework 1.0