Dela via


ICorDebugUnmanagedCallback::D ebugEvent-metod

Meddelar felsökaren att en intern händelse har utlösts.

Syntax

HRESULT DebugEvent (
    [in] LPDEBUG_EVENT  pDebugEvent,
    [in] BOOL           fOutOfBand
);

Parametrar

pDebugEvent [i] En pekare till den inbyggda händelsen.

fOutOfBand[i] true, om interaktion med det hanterade processtillståndet är omöjligt när en ohanterad händelse inträffar, tills felsökningsprogrammet anropar ICorDebugController::Fortsätt; annars . false

Kommentarer

Om tråden som debuggas är en Win32-tråd ska du inte använda några medlemmar i Win32-felsökningsgränssnittet. Du kan bara anropa ICorDebugController::Continue på en Win32-tråd och bara när du fortsätter förbi en out-of-band-händelse.

Återanropet DebugEvent följer inte standardreglerna för återanrop. När du anropar DebugEventkommer processen att vara i tillståndet rå, OS-felsökning stoppad. Processen synkroniseras inte. Det kommer automatiskt att ange det synkroniserade tillståndet när det behövs för att uppfylla begäranden om information om hanterad kod, vilket kan resultera i andra kapslade DebugEvent återanrop.

Anropa ICorDebugProcess::ClearCurrentException på processen för att ignorera en undantagshändelse innan du fortsätter processen. Om du anropar den här metoden skickas DBG_CONTINUE i stället för DBG_EXCEPTION_NOT_HANDLED på fortsätt-begäran och rensar automatiskt out-of-band-brytpunkter och undantag i ett enda steg. Out-of-band-händelser kan komma när som helst, även när programmet som debugged visas stoppad och när det redan finns en utestående in-band-händelse.

I .NET Framework version 2.0 bör felsökningsprogrammet omedelbart fortsätta förbi en out-of-band-brytpunktshändelse. Felsökningsprogrammet bör använda metoderna ICorDebugProcess2::SetUnmanagedBreakpoint och ICorDebugProcess2::ClearUnmanagedBreakpoint för att lägga till och ta bort brytpunkter. Dessa metoder hoppar över eventuella out-of-band-brytpunkter automatiskt. Därför bör de enda out-of-band-brytpunkterna som skickas vara råa brytpunkter som redan finns i instruktionsströmmen, till exempel ett anrop till win32-funktionen DebugBreak . Försök inte använda ICorDebugProcess::ClearCurrentException, ICorDebugProcess::GetThreadContext, ICorDebugProcess::SetThreadContext eller någon annan medlem i felsöknings-API:et.

Krav

Plattformar: Se Systemkrav.

Rubrik: CorDebug.idl, CorDebug.h

Bibliotek: CorGuids.lib

.NET Framework-versioner: Finns sedan 1.0

Se även