Dela via


Händelsetyper som stöds

Visual Studio-felsökning stöder för närvarande följande händelsetyper:

  • Asynkrona händelser

    Meddela sessionsfelsökhanteraren (SDM) och IDE att tillståndet för programmet som debuggas ändras. Dessa händelser bearbetas när SDM och IDE har tid eller kapacitet. Inget svar skickas till felsökningsmotorn (DE) när händelsen har bearbetats. Gränssnitten IDebugOutputStringEvent2 och IDebugMessageEvent2 är exempel på asynkrona händelser.

  • Synkrona händelser

    Meddela SDM och IDE att tillståndet för programmet som debuggas ändras. Den enda skillnaden mellan dessa händelser och asynkrona händelser är att ett svar skickas med hjälp av metoden ContinueFromSynchronousEvent .

    Att skicka en synkron händelse är användbart om du behöver din DE för att fortsätta bearbetningen efter att IDE tar emot och bearbetar händelsen.

  • Synkrona stopphändelser eller stoppa händelser

    Meddela SDM och IDE att programmet som felsöks har slutat att köra någon kod. När du skickar en stopphändelse med metoden Event krävs parametern IDebugThread2 . Stopphändelser fortsätter med ett anrop till någon av följande metoder:

    Anmärkning

    Asynkrona stopphändelser stöds inte. Det är ett fel att skicka en asynkron stopphändelse.

Diskussion

Den faktiska implementeringen av händelser beror på utformningen av din DE. Typen av varje händelse som skickas bestäms av dess attribut, som anges när du utformar DE. Till exempel kan en DE skicka en IDebugProgramCreateEvent2 som en asynkron händelse, medan en annan kan skicka den som en stoppande händelse.

I följande tabell anges vilka program- och trådparametrar som krävs för vilka händelser samt händelsetyper. Alla händelser kan vara synkrona. Ingen händelse behöver vara synkron.

Anmärkning

Gränssnittet IDebugEngine2 krävs för alla händelser.

Event IDebugProgram2 IDebugThread2 Stoppa händelser
IDebugActivateDocumentEvent2 Tillåts, men krävs inte Tillåts, men krävs inte Nej
IDebugBreakEvent2 Krävs Krävs Yes
IDebugBreakpointBoundEvent2 Tillåts, men krävs inte Tillåts, men krävs inte Nej
IDebugBreakpointErrorEvent2 Tillåts, men krävs inte Tillåts, men krävs inte Nej
IDebugBreakpointUnboundEvent2 Tillåts, men krävs inte Tillåts, men krävs inte Nej
IDebugBreakpointEvent2 Krävs Krävs Yes
IDebugCanStopEvent2 Krävs Krävs Nej
IDebugDocumentTextEvents2 Tillåts inte Tillåts inte Nej
IDebugEngineCreateEvent2 Tillåts inte Tillåts inte Nej
IDebugEntryPointEvent2 Krävs Krävs Yes
IDebugErrorEvent2 Tillåts, men krävs inte Tillåts, men krävs inte Kan vara
IDebugExceptionEvent2 Krävs Krävs Yes
IDebugExpressionEvaluationCompleteEvent2 Tillåts, men krävs inte Tillåts, men krävs inte Kan vara
IDebugInterceptExceptionCompleteEvent2 Krävs Krävs Yes
IDebugLoadCompleteEvent2 Krävs Krävs Yes
IDebugMessageEvent2 Tillåts, men krävs inte Tillåts, men krävs inte Kan vara
IDebugModuleLoadEvent2 Krävs Tillåts, men krävs inte Nej
IDebugOutputStringEvent2 Tillåts, men krävs inte Tillåts, men krävs inte Nej
IDebugProgramCreateEvent2 Krävs Tillåts, men krävs inte Nej
IDebugProgramDestroyEvent2 Krävs Tillåts, men krävs inte Nej
IDebugPropertyCreateEvent2 Krävs Tillåts, men krävs inte Nej
IDebugPropertyDestroyEvent2 Krävs Tillåts, men krävs inte Nej
IDebugReturnValueEvent2 Tillåts, men krävs inte Tillåts, men krävs inte Nej
IDebugStopCompleteEvent2 Krävs Krävs Yes
IDebugStepCompleteEvent2 Krävs Krävs Yes
IDebugSymbolSearchEvent2 Tillåts, men krävs inte Tillåts, men krävs inte Nej
IDebugThreadCreateEvent2 Krävs Krävs Nej
IDebugThreadDestroyEvent2 Krävs Krävs Nej
IDebugThreadNameChangedEvent2 Tillåts, men krävs inte Tillåts, men krävs inte Nej

Se även