Partager via


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 IDebugStackFrame3pas, ou si le DE retourne une erreur à partir d’IDebugStackFrame3 ::InterceptCurrentException (par exemple E_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

Voir aussi