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
IDebugStackFrame3
o de restituisce un errore da IDebugStackFrame3::InterceptCurrentException
(ad esempioE_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