Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Notifica al depurador que se ha desencadenado un evento nativo.
Syntax
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 es imposible después de que se produzca un evento no administrado, hasta que el depurador llame a ICorDebugController::Continue; de lo contrario, false.
Observaciones
Si el subproceso que se depura es un subproceso win32, no use ningún miembro de la interfaz de depuración de Win32. Solo puedes llamar a en un subproceso ICorDebugController::Continue de Win32 y solo cuando continúas más allá de un evento fuera de banda.
La DebugEvent devolución de llamada no sigue las reglas estándar para las devoluciones de llamada. Cuando se llama a DebugEvent, el proceso estará en el estado sin procesar OS-debug detenido. El proceso no se sincronizará. Entrará automáticamente en el estado sincronizado cuando sea necesario para satisfacer las solicitudes de información sobre el código administrado, lo que puede dar lugar a otras devoluciones de llamada anidadas DebugEvent .
Llame a ICorDebugProcess::ClearCurrentException en el proceso para omitir un evento de excepción antes de continuar con el proceso. Llamar a este método envía DBG_CONTINUE en lugar de DBG_EXCEPTION_NOT_HANDLED en la solicitud continue y borra automáticamente los puntos de interrupción fuera de banda y las excepciones de un solo paso. Los eventos fuera de banda pueden aparecer en cualquier momento, incluso cuando la aplicación que se depura aparece detenida y cuando ya existe un evento pendiente en banda.
El depurador debe continuar inmediatamente después de 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 los puntos de interrupción fuera de banda. Por lo tanto, los únicos puntos de interrupción fuera de banda que se envían deben ser puntos de interrupción sin procesar que ya están en la secuencia de instrucciones, como una llamada a la función Win32 DebugBreak . No intente usar ICorDebugProcess::ClearCurrentException, ICorDebugProcess::GetThreadContext, ICorDebugProcess::SetThreadContext ni ningún otro miembro de la API de depuración.
Requisitos
Plataformas: Consulte Sistemas operativos compatibles con .NET.
Encabezado: CorDebug.idl, CorDebug.h
Biblioteca: CorGuids.lib
Versiones de .NET: Disponible desde .NET Framework 1.0