Bagikan melalui


IDebugStackFrame3

Antarmuka ini memperluas IDebugStackFrame2 untuk menangani pengecualian yang disadap.

Sintaks

IDebugStackFrame3 : IDebugStackFrame2

Catatan untuk Pelaksana

Mesin debug (DE) mengimplementasikan antarmuka ini pada objek yang sama yang mengimplementasikan antarmuka IDebugStackFrame2 untuk mendukung pengecualian yang disadap.

Catatan untuk Penelepon

Panggil QueryInterface pada IDebugStackFrame2 antarmuka untuk mendapatkan antarmuka ini.

Metode dalam Urutan Vtable

Selain metode yang diwariskan dari IDebugStackFrame2, IDebugStackFrame3 mengekspos metode berikut.

Metode Deskripsi
InterceptCurrentException Menangani pengecualian untuk bingkai tumpukan saat ini sebelum penanganan pengecualian reguler.
GetUnwindCodeContext Mengembalikan konteks kode jika terjadi unwind tumpukan.

Keterangan

Pengecualian yang disadap berarti bahwa debugger dapat memproses pengecualian sebelum rutinitas penanganan pengecualian normal dipanggil oleh run time. Mencegat pengecualian pada dasarnya berarti membuat run time berpura-pura bahwa ada handler pengecualian yang ada bahkan ketika tidak ada.

  • InterceptCurrentException dipanggil selama semua peristiwa panggilan balik pengecualian normal (satu-satunya pengecualian untuk ini adalah jika Anda men-debug kode mode campuran (kode terkelola dan tidak dikelola), dalam hal ini pengecualian tidak dapat dicegat selama panggilan balik kesempatan terakhir). Jika DE tidak menerapkan IDebugStackFrame3, atau DE mengembalikan kesalahan dari IDebugStackFrame3::InterceptCurrentException (seperti E_NOTIMPL), maka debugger akan menangani pengecualian secara normal.

Dengan mencegat pengecualian, debugger dapat memungkinkan pengguna untuk membuat perubahan pada status program yang di-debug dan kemudian melanjutkan eksekusi pada titik di mana pengecualian dilemparkan.

Catatan

Pengecualian yang disadap hanya diperbolehkan dalam kode terkelola, yaitu, dalam program yang berjalan di bawah Common Language Runtime (CLR).

Mesin debug menunjukkan bahwa mesin ini mendukung penyadapan pengecualian dengan mengatur "metricExceptions" ke nilai 1 pada waktu proses dengan menggunakan SetMetric fungsi . Untuk informasi selengkapnya, lihat Pembantu SDK untuk Penelusuran Kesalahan.

Persyaratan

Header: msdbg.h

Namespace: Microsoft.VisualStudio.Debugger.Interop

Rakitan: Microsoft.VisualStudio.Debugger.Interop.dll

Baca juga