IDebugStackFrame3IDebugStackFrame3

Cette interface étend IDebugStackFrame2 pour gérer les exceptions interceptées.This interface extends IDebugStackFrame2 to handle intercepted exceptions.

SyntaxeSyntax

IDebugStackFrame3 : IDebugStackFrame2  

Notes pour les implémenteursNotes for Implementers

Le moteur de débogage (DE) implémente cette interface sur le même objet qui implémente le IDebugStackFrame2 interface pour prendre en charge les exceptions interceptées.The debug engine (DE) implements this interface on the same object that implements the IDebugStackFrame2 interface to support intercepted exceptions.

Remarques pour les appelantsNotes for Callers

Appelez QueryInterface sur une IDebugStackFrame2 interface pour obtenir cette interface.Call QueryInterface on an IDebugStackFrame2 interface to obtain this interface.

Méthodes dans l'ordre VtableMethods in Vtable Order

Outre les méthodes héritées de IDebugStackFrame2, IDebugStackFrame3 expose les méthodes suivantes.In addition to the methods inherited from IDebugStackFrame2, IDebugStackFrame3 exposes the following methods.

MéthodeMethod DescriptionDescription
InterceptCurrentExceptionInterceptCurrentException Gère une exception pour le frame de pile actuel avant que la gestion des exceptions normale.Handles an exception for the current stack frame before any regular exception handling.
GetUnwindCodeContextGetUnwindCodeContext Retourne un contexte de code si un déroulement de pile se produit.Returns a code context if a stack unwind were to occur.

NotesRemarks

Une exception interceptée signifie qu’un débogueur peut traiter une exception avant des routines de gestion des exceptions normales sont appelées par le temps d’exécution.An intercepted exception means that a debugger can process an exception before any normal exception handling routines are called by the run time. Interception d’une exception essentiellement : la mise à l’heure d’exécution de prétendre qu’il existe un gestionnaire d’exceptions présent même quand il n’existe pas.Intercepting an exception essentially means making the run time pretend that there is an exception handler present even when there is not.

InterceptCurrentException est appelé lors de tous les événements de rappel d’exception normale (la seule exception à cela est que si vous déboguez du code en mode mixte (managé et code non managé), auquel cas l’exception ne peut pas être interceptée lors de la rappel de la dernière chance).InterceptCurrentException is called during all normal exception callback events (the only exception to this is if you are debugging mixed-mode code (managed and unmanaged code), in which case the exception cannot be intercepted during the last-chance callback). Si le DE n’implémente pas IDebugStackFrame3, ou le DE renvoie une erreur à partir de IDebugStackFrame3 ::InterceptCurrentException (tel que E_NOTIMPL), puis le débogueur gère l’exception normalement.If the DE does not implement IDebugStackFrame3, or the DE returns an error from IDebugStackFrame3::InterceptCurrentException (such as E_NOTIMPL), then the debugger will handle the exception normally.

En interceptant une exception, le débogueur peut autoriser l’utilisateur d’apporter des modifications à l’état du programme débogué et reprendre l’exécution au point où l’exception a été levée.By intercepting an exception, the debugger can allow the user to make changes to the state of the program being debugged and then resume execution at the point where the exception was thrown.

Note

Les exceptions interceptées sont autorisées uniquement dans le code managé, autrement dit, dans un programme qui s’exécute sous le Common Language Runtime (CLR).Intercepted exceptions are allowed only in managed code, that is, in a program that is running under the Common Language Runtime (CLR).

Un moteur de débogage indique qu’il prend en charge interception des exceptions en définissant « metricExceptions » avec une valeur de 1 au moment de l’exécution à l’aide de la SetMetric (fonction).A debug engine indicates that it supports intercepting exceptions by setting "metricExceptions" to a value of 1 at run time by using the SetMetric function. Pour plus d’informations, consultez programmes d’assistance du Kit de développement logiciel pour le débogage.For more information, see SDK Helpers for Debugging.

SpécificationsRequirements

En-tête : msdbg.hHeader: msdbg.h

Namespace : Microsoft.VisualStudio.Debugger.InteropNamespace: Microsoft.VisualStudio.Debugger.Interop

Assembly : Microsoft.VisualStudio.Debugger.Interop.dllAssembly: Microsoft.VisualStudio.Debugger.Interop.dll

Voir aussiSee Also

Interfaces de base Core Interfaces
IDebugStackFrame2 IDebugStackFrame2
Aides SDK pour le débogageSDK Helpers for Debugging