ICorDebugUnmanagedCallback::DebugEvent (Método)
Notifica al depurador que se ha desencadenado un evento nativo.
HRESULT DebugEvent (
[in] LPDEBUG_EVENT pDebugEvent,
[in] BOOL fOutOfBand
);
Parámetros
pDebugEvent
[in] Puntero al evento nativo.fOutOfBand
[in] true si la interacción con el estado del proceso administrado no es posible después de un evento no administrado, hasta que el depurador llama a ICorDebugController::Continue; de lo contrario, false.
Comentarios
Si el subproceso que se va a depurar es un subproceso de Win32, no utilice ningún miembro de la interfaz de depuración de Win32. Sólo se puede llamar a ICorDebugController::Continue en un subproceso de Win32 y sólo cuando se continúa una vez pasado un evento fuera de banda.
La devolución de llamada DebugEvent no sigue las reglas estándar de las devoluciones de llamada. Al llamar a DebugEvent, el proceso estará en el estado original de detención de depuración del sistema operativo. El proceso no se sincronizará. Entrará automáticamente en un estado sincronizado cuando sea necesario para atender solicitudes de obtención de información acerca del código administrado, lo que puede dar lugar a otras devoluciones de llamada DebugEvent anidadas.
Llame a ICorDebugProcess::ClearCurrentException en el proceso para omitir un evento de excepción antes de continuar con el proceso. Al llamar a este método, se envía DBG_CONTINUE en lugar de DBG_EXCEPTION_NOT_HANDLED en la solicitud de continuación y se borran automáticamente los puntos de interrupción fuera de banda y las excepciones de un solo paso. Los eventos fuera de banda pueden producirse en cualquier momento, incluso cuando la aplicación que está depurándose aparece detenida y cuando ya existe un evento pendiente dentro de banda.
En .NET Framework 2.0, el depurador debe continuar inmediatamente tras un evento de punto de interrupción fuera de banda. El depurador debe usar los métodos ICorDebugProcess2::SetUnmanagedBreakpoint e ICorDebugProcess2::ClearUnmanagedBreakpoint para agregar y quitar puntos de interrupción. Estos métodos omitirán automáticamente cualquier punto de interrupción fuera de banda. Por lo tanto, los únicos puntos de interrupción fuera de banda que llegan a enviarse deben ser los puntos de interrupción sin formato que ya se encuentran en la secuencia de instrucciones, como una llamada a la función DebugBreak de Win32. No intente utilizar ICorDebugProcess::ClearCurrentException, ICorDebugProcess::GetThreadContext, ICorDebugProcess::SetThreadContext o cualquier otro miembro de la API de depuración.
Requisitos
Plataformas: vea Requisitos de sistema de .NET Framework.
Encabezado: CorDebug.idl, CorDebug.h
Biblioteca: CorGuids.lib
Versiones de .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0