IDebugStackFrame3
此介面會 擴充 IDebugStackFrame2 來處理攔截的例外狀況。
語法
IDebugStackFrame3 : IDebugStackFrame2
實作者的注意事項
偵錯引擎 (DE) 會在實作 IDebugStackFrame2 介面以支持攔截例外狀況的相同物件上實作這個介面。
呼叫端注意事項
在介面上IDebugStackFrame2
呼叫 QueryInterface 以取得這個介面。
依照 Vtable 順序的方法
除了繼承自 IDebugStackFrame2 的方法之外, IDebugStackFrame3
也會公開下列方法。
方法 | 描述 |
---|---|
InterceptCurrentException | 處理目前堆疊框架的例外狀況,再處理任何一般例外狀況處理。 |
GetUnwindCodeContext | 如果堆疊回溯發生,則傳回程式代碼內容。 |
備註
攔截的例外狀況表示調試程式可以在運行時間呼叫任何一般例外狀況處理程式之前處理例外狀況。 攔截例外狀況基本上表示讓運行時間假裝有例外狀況處理程式,即使沒有。
- InterceptCurrentException 會在所有一般例外狀況回呼事件期間呼叫(唯一的例外狀況是,如果您要偵錯混合模式程式代碼 (Managed 和 Unmanaged 程式代碼),在此情況下,在最後一次機會回呼期間無法攔截例外狀況。 如果 DE 未實
IDebugStackFrame3
作 ,或 DE 從 IDebugStackFrame3:: 傳回錯誤,InterceptCurrentException
E_NOTIMPL
則調試程式會正常處理例外狀況。
藉由攔截例外狀況,調試程式可讓用戶變更正在偵錯的程式狀態,然後在擲回例外狀況的點繼續執行。
注意
攔截的例外狀況只允許在Managed程式代碼中,也就是在 Common Language Runtime (CLR) 下執行的程式。
偵錯引擎表示它支援攔截例外狀況,方法是使用 SetMetric
函式,將 「metricExceptions」 設定為運行時間的 1 值。 如需詳細資訊,請參閱 SDK 協助程式以進行偵錯。
需求
標頭:msdbg.h
命名空間:Microsoft.VisualStudio.Debugger.Interop
元件:Microsoft.VisualStudio.Debugger.Interop.dll