Partager via


ICorDebugUnmanagedCallback::DebugEvent, méthode

Notifie au débogueur qu'un événement natif a été déclenché.

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 de processus managé est impossible à la suite d'un événement non managé, jusqu'à ce que le débogueur appelle ICorDebugController::Continue ; sinon, false.

Notes

Si le thread qui est débogué est un thread Win32, n'utilisez aucun membre de l'interface de débogage Win32. Vous ne pouvez appeler ICorDebugController::Continue que sur un thread Win32 et uniquement lorsque vous continuez après 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 dans l'état arrêté du débogage de système d'exploitation brut. Le processus n'est pas synchronisé. Il prend automatiquement l'état synchronisé lorsque cela est nécessaire pour satisfaire les demandes d'informations sur le code managé, ce qui peut provoquer 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 demande Continuer, et efface automatiquement les points d'arrêt hors bande ainsi que les exceptions pas à pas. Les événements hors bande peuvent se produire à tout moment, même lorsque l'application qui est déboguée apparaît arrêtée et lorsqu'un événement dans la bande en attente existe déjà.

Dans la version 2.0 du .NET Framework, le débogueur doit continuer immédiatement 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 ignoreront automatiquement les points d'arrêt hors bande. Par conséquent, les seuls points d'arrêt hors bande à distribuer doivent être des points d'arrêt bruts déjà dans le flux d'instructions, tels qu'un appel à la fonction DebugBreak Win32. 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 du .NET Framework.

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

Bibliothèque : CorGuids.lib

Versions du .NET Framework : 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

Voir aussi

Référence

ICorDebugUnmanagedCallback, interface