Condividi tramite


IDebugStackFrame3

Questa interfaccia estende IDebugStackFrame2 per gestire le eccezioni intercettate.

Sintassi

IDebugStackFrame3 : IDebugStackFrame2

Note per gli implementatori

Il motore di debug implementa questa interfaccia sullo stesso oggetto che implementa l'interfaccia IDebugStackFrame2 per supportare le eccezioni intercettate.

Note per i chiamanti

Chiamare QueryInterface su un'interfaccia IDebugStackFrame2 per ottenere questa interfaccia.

Metodi nell'ordine Vtable

Oltre ai metodi ereditati da IDebugStackFrame2, IDebugStackFrame3 espone i metodi seguenti.

metodo Descrizione
InterceptCurrentException Gestisce un'eccezione per lo stack frame corrente prima di qualsiasi normale gestione delle eccezioni.
GetUnwindCodeContext Restituisce un contesto di codice se si verifica una rimozione dello stack.

Osservazioni:

Un'eccezione intercettata indica che un debugger può elaborare un'eccezione prima che tutte le normali routine di gestione delle eccezioni vengano chiamate dal runtime. L'intercettazione di un'eccezione significa essenzialmente fare in modo che il runtime faccia finta che sia presente un gestore di eccezioni anche quando non è presente.

  • InterceptCurrentException viene chiamato durante tutti gli eventi di callback delle eccezioni normali (l'unica eccezione è se si esegue il debug di codice in modalità mista (codice gestito e non gestito), nel qual caso l'eccezione non può essere intercettata durante il callback dell'ultima probabilità. Se la de non implementa IDebugStackFrame3o de restituisce un errore da IDebugStackFrame3::InterceptCurrentException (ad esempio E_NOTIMPL), il debugger gestirà normalmente l'eccezione.

Intercettando un'eccezione, il debugger può consentire all'utente di apportare modifiche allo stato del programma sottoposto a debug e quindi riprendere l'esecuzione nel punto in cui è stata generata l'eccezione.

Nota

Le eccezioni intercettate sono consentite solo nel codice gestito, ovvero in un programma in esecuzione in Common Language Runtime (CLR).

Un motore di debug indica che supporta l'intercettazione delle eccezioni impostando "metricExceptions" su un valore pari a 1 in fase di esecuzione usando la SetMetric funzione . Per altre informazioni, vedere Sdk Helpers for Debugging .For more information, see SDK Helpers for Debugging.

Requisiti

Intestazione: msdbg.h

Spazio dei nomi: Microsoft.VisualStudio.Debugger.Interop

Assembly: Microsoft.VisualStudio.Debugger.Interop.dll

Vedi anche