Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Antarmuka berikut adalah antarmuka inti untuk memperluas debugger dengan menggunakan Visual Studio SDK.
Diskusi
Antarmuka ini terutama digunakan untuk membuat mesin debug (DE). Mereka diatur di sini berdasarkan kategori:
-
Entitas yang dapat mengimplementasikan antarmuka adalah:
Mesin Debug (DE)
Pemasok Port (PS)
Evaluator Ekspresi (EE)
Visual Studio (VS)
Titik henti
Antarmuka ini terkait dengan implementasi dan pelacakan titik henti.
| Antarmuka | Diimplementasikan oleh | Deskripsi |
|---|---|---|
| IDebugBoundBreakpoint2 | DE | Mewakili titik henti yang terikat ke lokasi memori. |
| IDebugBreakpointBoundEvent2 | DE | Dikirim oleh DE saat titik henti terikat ke lokasi memori. |
| IDebugBreakpointChecksumRequest2 | VS | Mewakili checksum dokumen untuk permintaan titik henti. |
| IDebugBreakpointErrorEvent2 | DE | Dikirim oleh DE ketika titik henti gagal terikat ke lokasi memori. |
| IDebugBreakpointEvent2 | DE | Dikirim oleh DE saat titik henti tercapai. |
| IDebugBreakpointRequest2 | VS | Mewakili permintaan titik henti; digunakan dalam membuat titik henti yang tertunda. |
| IDebugBreakpointRequest3 | VS | Mewakili permintaan titik henti; digunakan dalam membuat titik henti yang tertunda. |
| IDebugBreakpointResolution2 | DE | Mewakili informasi yang digunakan untuk mengikat titik henti. |
| IDebugBreakpointUnboundEvent2 | DE | Dikirim oleh DE saat titik henti tidak terikat dari lokasi memori. |
| IDebugErrorBreakpoint2 | DE | Mewakili titik henti yang tidak valid (dikembalikan oleh IDebugBreakpointErrorEvent2). |
| IDebugErrorBreakpointResolution2 | DE | Mewakili informasi resolusi tentang titik henti yang tidak valid. |
| IDebugFunctionPosition2 | DE | Mewakili posisi dalam fungsi tempat titik henti diatur. |
| IDebugPendingBreakpoint2 | DE | Mewakili titik henti yang akan terikat; digunakan dalam membuat titik henti terikat. |
| IEnumDebugBoundBreakpoints2 | DE | Mewakili enumerasi atas sekumpulan titik henti terikat. |
| IEnumDebugErrorBreakpoints2 | DE | Mewakili enumerasi atas sekumpulan titik henti yang tidak dapat terikat ke lokasi memori. |
Konteks
Antarmuka ini mewakili berbagai jenis konteks dalam program yang sedang di-debug.
| Antarmuka | Diimplementasikan oleh | Deskripsi |
|---|---|---|
| IDebugCodeContext2 | DE | Mewakili posisi awal instruksi kode. |
| IDebugCodeContext3 | DE | Memperluas antarmuka IDebugCodeContext2 untuk mengaktifkan pengambilan modul dan antarmuka proses. |
| IDebugDocumentContext2 | VS, DE | Mewakili posisi dalam dokumen. |
| IDebugExpressionContext2 | DE | Mewakili konteks untuk mengevaluasi ekspresi. |
| IDebugMemoryContext2 | DE | Mewakili lokasi awal dalam memori kumpulan byte. |
| IDebugStackFrame2 | DE | Mewakili konteks bingkai tumpukan pada titik henti atau pengecualian. |
| IDebugStackFrame3 | DE | Mewakili konteks bingkai tumpukan pada titik henti atau pengecualian. |
| IEnumDebugCodeContexts2 | DE | Mewakili enumerasi atas sekumpulan konteks kode. |
Server Inti
Antarmuka ini mewakili komputer tempat program sedang di-debug. Ini diimplementasikan oleh Visual Studio tetapi dapat dipanggil oleh mesin debug.
| Antarmuka | Diimplementasikan oleh | Deskripsi |
|---|---|---|
| IDebugCoreServer2 | VS | Menyediakan akses ke port dan pemasok port serta informasi tentang komputer. |
| IDebugCoreServer3 | VS | Mewakili IDebugCoreServer2 yang mendukung penelusuran kesalahan jarak jauh. |
Mesin Debug
Antarmuka ini mewakili mesin debug dan peristiwa terkaitnya.
| Antarmuka | Diimplementasikan oleh | Deskripsi |
|---|---|---|
| IDebugEngine2 | DE | Mewakili mesin debug kustom. |
| IDebugEngine3 | DE | Mewakili mesin debug kustom yang mendukung pemuatan simbol, JustMyCode, dan pengecualian. |
| IDebugEngineCreateEvent2 | DE | Dikirim oleh setiap instans de baru untuk menunjukkan siap menangani tugas penelusuran kesalahan. |
| IDebugEngineLaunch2 | DE | Mewakili mesin debug kustom yang mendukung peluncuran program. |
| IDebugProgramEngines2 | DE, PS | Mewakili simpul program yang menangani beberapa mesin debug. |
| IDebugQueryEngine2 | DE | Menyediakan cara bagi SDM untuk mendapatkan antarmuka ke mesin debug dari rangkaian, program, atau tumpukan. |
Dokumen
Antarmuka ini mewakili dokumen (file sumber) dan elemen terkaitnya.
| Antarmuka | Diimplementasikan oleh | Deskripsi |
|---|---|---|
| IDebugActivateDocumentEvent2 | DE | Dikirim oleh DE untuk meminta dokumen dibuka. |
| IDebugDisassemblyStream2 | DE | Mewakili aliran instruksi yang dibongkar dari dokumen. |
| IDebugDocument2 | VS, DE | Mewakili dokumen yang disediakan oleh DE, menentukan nama dan ID kelas (CLSID). |
| IDebugDocumentChecksum2 | DE, EE | Mewakili checksum untuk dokumen debug dan memungkinkan melewati checksum antar komponen. |
| IDebugDocumentContext2 | VS, DE | Mewakili konteks dokumen, posisi dalam dokumen yang sesuai dengan pernyataan dan konteks kode tertentu. |
| IDebugDocumentPosition2 | VS, DE | Mewakili posisi umum dalam dokumen. |
| IDebugDocumentPositionOffset2 | VS | Mewakili posisi dalam file sumber sebagai offset karakter. |
| IDebugDocumentText2 | VS, DE | Mewakili dokumen teks yang disediakan oleh DE (berasal dari IDebugDocument2), menyediakan teks aktual. |
| IDebugDocumentTextEvents2 | DE | Dikirim oleh DE untuk menentukan perubahan pada file sumber yang ada dalam memori. |
Aktivitas
Antarmuka ini mewakili semua peristiwa yang dikirim antara DE dan manajer debug sesi (SDM).
| Antarmuka | Diimplementasikan oleh | Deskripsi |
|---|---|---|
| IDebugActivateDocumentEvent2 | DE | Dikirim oleh DE untuk meminta dokumen dibuka. |
| IDebugBeforeSymbolSearchEvent2 | DE | Mesin debug (DE) mengirimkan antarmuka ini ke manajer debug sesi (SDM) untuk mengatur pesan bilah status selama pemuatan simbol. |
| IDebugBreakEvent2 | DE | Dikirim oleh DE ketika jeda dalam program telah selesai. |
| IDebugBreakpointBoundEvent2 | DE | Dikirim oleh DE saat titik henti terikat. |
| IDebugBreakpointErrorEvent2 | DE | Dikirim oleh DE ketika titik henti gagal diikat. |
| IDebugBreakpointEvent2 | DE | Dikirim oleh DE saat titik henti tercapai. |
| IDebugBreakpointUnboundEvent2 | DE | Dikirim oleh DE saat titik henti tidak terikat. |
| IDebugCanStopEvent2 | DE | Dikirim oleh DE untuk menentukan apakah harus berhenti di lokasi tertentu. |
| IDebugDocumentTextEvents2 | DE | Dikirim oleh DE untuk menentukan perubahan pada file sumber yang ada dalam memori. |
| IDebugEngineCreateEvent2 | DE | Dikirim oleh setiap instans de baru untuk menunjukkan siap menangani tugas penelusuran kesalahan. |
| IDebugEntryPointEvent2 | DE | Dikirim oleh DE untuk menunjukkan program yang sedang di-debug siap untuk menjalankan instruksi pertama. |
| IDebugErrorEvent2 | DE | Antarmuka yang digunakan oleh antarmuka peristiwa lain, yang mungkin mengembalikan kesalahan, untuk menyediakan pesan kesalahan yang dapat dibaca manusia. |
| IDebugEvent2 | DE, PS | Antarmuka dasar dari mana semua antarmuka peristiwa lainnya diturunkan. |
| IDebugEventCallback2 | VS | Mewakili antarmuka yang diimplementasikan oleh SDM tempat peristiwa (dinyatakan sebagai objek yang mengimplementasikan antarmuka peristiwa tertentu) dikirim. |
| IDebugExceptionEvent2 | DE | Dikirim oleh DE ketika pengecualian telah terjadi dalam program yang sedang di-debug. |
| IDebugExpressionEvaluationCompleteEvent2 | DE | Dikirim oleh DE ketika evaluasi ekspresi asinkron selesai. |
| IDebugFindSymbolEvent2 | USANG. JANGAN GUNAKAN. | |
| IDebugInterceptExceptionCompleteEvent2 | DE | Dikirim oleh DE saat memproses pengecualian yang disadap telah selesai. |
| IDebugLoadCompleteEvent2 | DE | Dikirim oleh DE ketika program telah selesai memuat. |
| IDebugMessageEvent2 | DE | Dikirim oleh DE agar IDE menampilkan pesan informasi kepada pengguna. |
| IDebugModuleLoadEvent2 | DE | Dikirim oleh DE saat modul dimuat atau dibongkar. |
| IDebugNoSymbolsEvent2 | DE | Menandakan UI debugger Visual Studio untuk memperingatkan pengguna bahwa simbol tidak dapat ditemukan untuk executable yang diluncurkan. |
| IDebugOutputStringEvent2 | DE | Dikirim oleh DE agar IDE menampilkan string arbitrer. |
| IDebugPortEvents2 | VS, DE | Dikirim oleh port untuk mengomunikasikan peristiwa port ke pendengar mana pun. |
| IDebugProcessCreateEvent2 | DE, PS | Dikirim oleh DE atau port ketika proses telah dibuat. |
| IDebugProcessDestroyEvent2 | DE, PS | Dikirim oleh DE atau port ketika proses telah dihancurkan. |
| IDebugProgramCreateEvent2 | DE, PS | Dikirim oleh DE atau port ketika program telah dibuat. |
| IDebugProgramDestroyEvent2 | DE, PS | Dikirim oleh DE atau port ketika program telah dihancurkan. |
| IDebugProgramDestroyEventFlags2 | DE | Memungkinkan mesin debug untuk mengambil alih perilaku default UI Visual Studio saat Anda mengakhiri sesi debug. |
| IDebugProgramNameChangedEvent2 | DE | Dikirim dari mesin debug (DE) ke manajer debug sesi (SDM) saat nama program berubah. |
| IDebugPropertyCreateEvent2 | DE | Dikirim oleh DE ketika properti baru (diwakili oleh IDebugProperty2 antarmuka) telah dibuat. |
| IDebugPropertyDestroyEvent2 | DE | Dikirim oleh DE ketika properti telah dihancurkan. |
| IDebugReturnValueEvent2 | DE | Dikirim oleh DE saat melangkah keluar dari atau melalui fungsi sehingga nilai yang dikembalikan dapat ditampilkan dengan benar. |
| IDebug Pengaturan Callback2 | VS | Memungkinkan mesin debug membaca pengaturan metrik dari jarak jauh. |
| IDebugStepCompleteEvent2 | DE | Dikirim oleh DE ketika langkah ke, atas, atau di luar instruksi telah selesai. |
| IDebugSymbolSearchEvent2 | DE | Dikirim oleh DE untuk menunjukkan keberhasilan atau kegagalan pemuatan simbol untuk modul. |
| IDebugThreadCreateEvent2 | DE | Dikirim oleh DE ketika utas telah dibuat. |
| IDebugThreadDestroyEvent2 | DE | Dikirim oleh DE ketika utas telah dihancurkan. |
| IDebugThreadNameChangedEvent2 | DE | Dikirim oleh DE ketika utas telah mengubah namanya. |
Expressions
Antarmuka ini mewakili ekspresi yang akan dievaluasi dalam konteks tertentu.
| Antarmuka | Diimplementasikan oleh | Deskripsi |
|---|---|---|
| IDebugExpression2 | DE | Mewakili ekspresi yang akan dievaluasi. Diperoleh dari antarmuka IDebugExpressionContext2 . |
| IDebugExpressionContext2 | DE | Mewakili konteks di mana ekspresi dievaluasi. Diperoleh dari antarmuka IDebugStackFrame2 . |
| IDebugExpressionEvaluationCompleteEvent2 | DE | Dikirim oleh DE ketika evaluasi ekspresi asinkron selesai. |
Memori
Antarmuka ini mewakili urutan byte dalam memori.
| Antarmuka | Diimplementasikan oleh | Deskripsi |
|---|---|---|
| IDebugMemoryBytes2 | DE | Mewakili urutan byte dalam memori yang dapat dibaca dari atau ditulis. |
| IDebugMemoryContext2 | DE | Mewakili lokasi dalam memori urutan byte. |
Modul
Antarmuka ini mewakili modul, yang sesuai dengan file executable atau .DLL.
| Antarmuka | Diimplementasikan oleh | Deskripsi |
|---|---|---|
| IDebugModule2 | DE | Mewakili satu executable atau DLL. |
| IDebugModule3 | DE | Mewakili IDebugModule2 yang mendukung simbol. |
| IDebugModuleLoadEvent2 | DE | Dikirim oleh DE saat modul dimuat atau dibongkar. |
| IDebugSourceServerModule | DE | Mewakili informasi server sumber yang terkandung dalam file PDB. |
| IEnumDebugModules2 | DE | Mewakili enumerasi atas sekumpulan modul yang dikenal oleh IDebugProgram2. |
Port
Antarmuka ini mewakili port dan pemasok port.
| Antarmuka | Diimplementasikan oleh | Deskripsi |
|---|---|---|
| IDebugDefaultPort2 | VS, PS | Mewakili port default pada komputer lokal. |
| IDebugFirewallConfigurationCallback2 | VS | Mengaktifkan mesin debug yang menggunakan DCOM untuk meminta Visual Studio UI untuk memastikan bahwa firewall tidak akan memblokir penelusuran kesalahan jarak jauh. |
| IDebugPort2 | VS, PS | Mewakili port. |
| IDebugPortEvents2 | PS | Dikirim oleh port untuk mengomunikasikan peristiwa port ke pendengar mana pun. |
| IDebugPortEx2 | PS | Mewakili port yang dapat meluncurkan dan mengakhiri proses. |
| IDebugPortNotify2 | PS | Digunakan untuk mendaftar dan membatalkan pendaftaran program dengan port; memungkinkan port untuk melacak program yang saat ini sedang di-debug. |
| IDebugPortPicker | PS | Mewakili UI yang dikustomisasi untuk memilih port. |
| IDebugPortRequest2 | VS | Mewakili permintaan port tempat port baru akan dibuat atau berada. |
| IDebugPortSupplier2 | PS | Mewakili pemasok port. |
| IDebugPortSupplier3 | PS | Mewakili pemasok port yang dapat menyimpan (menyimpan ke disk) informasi tentang port yang dibuatnya. |
| IDebugPortSupplierDescription2 | PS | Mengaktifkan UI Visual Studio untuk menampilkan teks di dalam bagian Informasi Transportasi dari kotak dialog Lampirkan ke Proses . |
| IDebugWindowsComputerPort2 | VS | Memungkinkan kueri untuk informasi tentang komputer target. |
| IEnumDebugPorts2 | VS, PS | Mewakili enumerasi atas sekumpulan port. |
| IEnumDebugPortSuppliers2 | VS | Mewakili enumerasi atas satu set pemasok port. |
Proses
Antarmuka ini mewakili proses, satu yang dapat dieksekusi yang berisi satu atau beberapa program.
| Antarmuka | Diimplementasikan oleh | Deskripsi |
|---|---|---|
| IDebugProcess2 | PS, DE | Mewakili proses yang sedang berjalan pada komputer. |
| IDebugProcess3 | PS, DE | Mewakili proses yang secara aktif mendukung penelusuran kesalahan (digunakan untuk mengganti metode Langkah, Lanjutkan, dan Jalankan pada antarmuka IDebugProgram2 ). |
| IDebugProcessCreateEvent2 | DE, PS | Dikirim oleh DE atau port ketika proses telah dibuat. |
| IDebugProcessDestroyEvent2 | DE, PS | Dikirim oleh DE atau port ketika proses telah dihancurkan. |
| IDebugProcessEx2 | PS | Mewakili proses yang harus melacak sesi mana yang dilampirkan ke sesi tersebut. |
| IEnumDebugProcesses2 | PS | Mewakili enumerasi sekumpulan proses pada port. |
Program
Antarmuka ini mewakili program, unit eksekusi logis yang tidak selalu sesuai dengan eksekusi fisik atau modul.
| Antarmuka | Diimplementasikan oleh | Deskripsi |
|---|---|---|
| IDebugEngineProgram2 | DE | Mewakili IDebugProgram2 yang perlu bekerja dalam konser dengan program lain yang di-debug secara bersamaan. |
| IDebugProgram2 | DE, PS | Mewakili unit eksekusi logis. |
| IDebugProgramCreateEvent2 | DE, PS | Dikirim oleh DE atau port ketika program telah dibuat. |
| IDebugProgramDestroyEvent2 | DE, PS | Dikirim oleh DE atau port ketika program telah dihancurkan. |
| IDebugProgramEngines2 | DE, PS | Mewakili IDebugProgramNode2 yang dapat ditangani oleh beberapa mesin debug. |
| IDebugProgramEx2 | PS | Mewakili IDebugProgram2 yang harus dapat melacak sesi mana yang melekat padanya. |
| IDebugProgramHost2 | DE, PS | Mewakili IDebugProgram2 yang dapat mengembalikan informasi tentang proses menjalankannya. |
| IDebugProgramNode2 | DE, PS | Mewakili program yang dapat di-debug. |
| IDebugProgramNodeAttach2 | DE, PS | Memungkinkan simpul program diberi tahu tentang upaya untuk melampirkan ke program terkait. |
| IDebugProgramProvider2 | DE | Menyediakan cara bagi SDM untuk mengkueri DE tentang program yang dikendalikan oleh DE tersebut. |
| IDebugProgramPublisher2 | VS | Digunakan oleh DEs untuk mendaftarkan program dengan SDM untuk menunjukkan bahwa mereka sedang di-debug. |
| IDebugProviderProgramNode2 | DE, PS | Mewakili IDebugProgramNode2 yang dapat melakukan marshal antarmuka di seluruh utas atau batas proses. |
| IEnumDebugPrograms2 | DE, PS | Mewakili enumerasi sekumpulan program. |
Properti
Antarmuka ini mewakili properti, nilai yang terkait dengan konteks tertentu, biasanya hasil evaluasi ekspresi.
| Antarmuka | Diimplementasikan oleh | Deskripsi |
|---|---|---|
| IDebugCustomViewer | EE | Mewakili IDebugProperty2 yang dapat menampilkan nilainya dengan cara kustom. |
| IDebugProperty2 | DE | Mewakili nilai bingkai tumpukan, dokumen, atau hasil evaluasi ekspresi. |
| IDebugProperty3 | DE | Mewakili IDebugProperty2 yang mendukung string yang sangat panjang. |
| IDebugPropertyCreateEvent2 | DE | Dikirim oleh DE ketika properti baru (diwakili oleh antarmuka IDebugProperty2 ) telah dibuat. |
| IDebugPropertyDestroyEvent2 | DE | Dikirim oleh DE ketika properti telah dihancurkan. |
| IDebugReference2 | DE | Mewakili referensi ke properti yang dapat ada di luar bingkai tumpukan tertentu. |
| IEnumDebugPropertyInfo2 | DE | Mewakili enumerasi atas sekumpulan struktur DEBUG_PROPERTY_INFO yang menjelaskan variabel, register, parameter, dan ekspresi. |
| IEnumDebugReferenceInfo2 | DE | Mewakili enumerasi atas satu set struktur DEBUG_REFERENCE_INFO . |
Bingkai Tumpukan
Antarmuka ini mewakili bingkai tumpukan, konteks di mana titik henti atau pengecualian telah terjadi.
| Antarmuka | Diimplementasikan oleh | Deskripsi |
|---|---|---|
| IDebugStackFrame2 | DE | Mewakili konteks di mana titik henti atau pengecualian telah terjadi. |
| IDebugStackFrame3 | DE | Mewakili IDebugStackFrame2 yang dapat menangani pengecualian yang disadap. |
| IEnumCodePaths2 | DE | Mewakili enumerasi atas kumpulan struktur CODE_PATH yang menentukan urutan panggilan fungsi yang digunakan untuk tiba di bingkai tumpukan tertentu. |
| IEnumDebugFrameInfo2 | DE | Mewakili enumerasi atas sekumpulan struktur FRAMEINFO , yang menjelaskan bingkai tumpukan. |
Utas
Antarmuka ini mewakili utas dan peristiwa terkaitnya.
| Antarmuka | Diimplementasikan oleh | Deskripsi |
|---|---|---|
| IDebugThread2 | DE | Mewakili utas eksekusi. |
| IDebugThreadCreateEvent2 | DE | Dikirim oleh DE ketika utas telah dibuat. |
| IDebugThreadDestroyEvent2 | DE | Dikirim oleh DE ketika utas telah dihancurkan. |
| IDebugThreadNameChangedEvent2 | DE | Dikirim oleh DE ketika utas telah mengubah namanya. |
| IEnumDebugThreads2 | DE | Mewakili enumerasi atas satu set utas. |
Ketik Visualizer
Antarmuka ini menyediakan dukungan untuk jenis visualizer. Antarmuka ini biasanya diimplementasikan oleh evaluator ekspresi.
| Antarmuka | Diimplementasikan oleh | Deskripsi |
|---|---|---|
| IEEDataStorage | EE | Mewakili array byte yang akan disajikan ke visualizer jenis. |
| IPropertyProxyEESide | EE | Menyediakan metode untuk mendapatkan akses ke data yang akan diteruskan ke visualizer jenis. |
| IPropertyProxyProvider | EE | Mewakili properti yang menyediakan akses ke implementasi IPropertyProxyEESide . |