IDebugStackFrame3
Cette interface étend IDebugStackFrame2 pour gérer les exceptions interceptées.
Syntaxe
IDebugStackFrame3 : IDebugStackFrame2
Remarques pour les implémenteurs
Le moteur de débogage (DE) implémente cette interface sur le même objet qui implémente l’interface IDebugStackFrame2 pour prendre en charge les exceptions interceptées.
Remarques pour les appelants
Appelez QueryInterface sur une IDebugStackFrame2
interface pour obtenir cette interface.
Méthodes dans l'ordre Vtable
Outre les méthodes héritées d’IDebugStackFrame2, IDebugStackFrame3
expose les méthodes suivantes.
Méthode | Description |
---|---|
InterceptCurrentException | Gère une exception pour la trame de pile actuelle avant toute gestion normale des exceptions. |
GetUnwindCodeContext | Retourne un contexte de code si un déroulement de pile devait se produire. |
Notes
Une exception interceptée signifie qu’un débogueur peut traiter une exception avant que toutes les routines de gestion des exceptions normales soient appelées par l’heure d’exécution. L’interception d’une exception signifie essentiellement que le temps d’exécution prétend qu’il existe un gestionnaire d’exceptions présent même s’il n’y en a pas.
- InterceptCurrentException est appelé pendant tous les événements de rappel d’exception normaux (la seule exception à ceci est que vous déboguez du code en mode mixte (code managé et non managé), auquel cas l’exception ne peut pas être interceptée pendant le rappel de dernière chance. Si le DE n’implémente
IDebugStackFrame3
pas, ou si le DE retourne une erreur à partir d’IDebugStackFrame3 ::InterceptCurrentException
(par exempleE_NOTIMPL
), le débogueur gère normalement l’exception.
En interceptant une exception, le débogueur peut permettre à l’utilisateur d’apporter des modifications à l’état du programme en cours de débogage, puis de reprendre l’exécution au moment où l’exception a été levée.
Remarque
Les exceptions interceptées sont autorisées uniquement dans le code managé, c’est-à-dire dans un programme qui s’exécute sous le Common Language Runtime (CLR).
Un moteur de débogage indique qu’il prend en charge l’interception des exceptions en définissant « metricExceptions » sur la valeur 1 au moment de l’exécution à l’aide de la SetMetric
fonction. Pour plus d’informations, consultez Les helpers du SDK pour le débogage.
Spécifications
En-tête : msdbg.h
Espace de noms : Microsoft.VisualStudio.Debugger.Interop
Assembly : Microsoft.VisualStudio.Debugger.Interop.dll