Bagikan melalui


Metode ICLRDebugging::OpenVirtualProcess

Mendapatkan antarmuka ICorDebugProcess yang sesuai dengan modul runtime bahasa umum (CLR) yang dimuat dalam proses.

Syntax

HRESULT OpenVirtualProcess(
    [in] ULONG64 moduleBaseAddress,
    [in] IUnknown * pDataTarget,
    [in] ICLRDebuggingLibraryProvider * pLibraryProvider,
    [in] CLR_DEBUGGING_VERSION * pMaxDebuggerSupportedVersion,
    [in] REFIID riidProcess,
    [out, iid_is(riidProcess)] IUnknown ** ppProcess,
    [in, out] CLR_DEBUGGING_VERSION * pVersion,
    [out] CLR_DEBUGGING_PROCESS_FLAGS * pdwFlags);

Parameter-parameternya

moduleBaseAddress [di] Alamat dasar modul dalam proses target. COR_E_NOT_CLR dikembalikan jika modul yang ditentukan bukan modul CLR.

pDataTarget [di] Abstraksi target data yang memungkinkan debugger terkelola memeriksa status proses. Debugger harus mengimplementasikan antarmuka ICorDebugDataTarget . Anda harus menerapkan antarmuka ICLRDebuggingLibraryProvider untuk mendukung skenario di mana CLR yang sedang di-debug tidak diinstal secara lokal di komputer.

pLibraryProvider [di] Antarmuka panggilan balik penyedia pustaka yang memungkinkan pustaka debugging khusus versi ditemukan dan dimuat sesuai permintaan. Parameter ini hanya diperlukan jika ppProcess atau pFlags bukan null.

pMaxDebuggerSupportedVersion [di] Versi tertinggi CLR yang dapat di-debug oleh debugger ini. Anda harus menentukan versi utama, minor, dan build dari versi CLR terbaru yang didukung debugger ini, dan mengatur nomor revisi ke 65535 untuk mengakomodasi rilis layanan CLR di tempat mendatang.

riidProcess [di] ID antarmuka ICorDebugProcess untuk diambil. Saat ini, satu-satunya nilai yang diterima adalah IID_CORDEBUGPROCESS3, IID_CORDEBUGPROCESS2, dan IID_CORDEBUGPROCESS.

ppProcess [out] Penunjuk ke antarmuka COM yang diidentifikasi oleh riidProcess.

pVersion [masuk, keluar] Versi CLR. Pada input, nilai ini dapat berupa null. Ini juga dapat menunjuk ke struktur CLR_DEBUGGING_VERSION , dalam hal ini bidang struktur wStructVersion harus diinisialisasi ke 0 (nol).

Pada output, struktur yang dikembalikan CLR_DEBUGGING_VERSION akan diisi dengan informasi versi untuk CLR.

pdwFlags [out] Bendera informasi tentang runtime yang ditentukan. Untuk deskripsi bendera, lihat CLR_DEBUGGING_PROCESS_FLAGS.

Mengembalikan Nilai

Metode ini mengembalikan HRESULT tertentu berikut serta kesalahan HRESULT yang menunjukkan kegagalan metode.

HRESULT Description
S_OK Metode berhasil diselesaikan.
E_POINTER pDataTarget adalah null.
CORDBG_E_LIBRARY_PROVIDER_ERROR Panggilan balik ICLRDebuggingLibraryProvider mengembalikan kesalahan atau tidak memberikan handel yang valid.
CORDBG_E_MISSING_DATA_TARGET_INTERFACE pDataTarget tidak menerapkan antarmuka target data yang diperlukan untuk versi runtime ini.
CORDBG_E_NOT_CLR Modul yang ditunjukkan bukan modul CLR. HRESULT ini juga dikembalikan ketika modul CLR tidak dapat dideteksi karena memori telah rusak, modul tidak tersedia, atau versi CLR lebih baru dari versi shim.
CORDBG_E_UNSUPPORTED_DEBUGGING_MODEL Versi runtime ini tidak mendukung model penelusuran kesalahan ini. Saat ini, model penelusuran kesalahan tidak didukung oleh versi CLR sebelum .NET Framework 4. Parameter pwszVersion output masih diatur ke nilai yang benar setelah kesalahan ini.
CORDBG_E_UNSUPPORTED_FORWARD_COMPAT Versi CLR lebih besar dari versi yang diklaim debugger ini untuk didukung. Parameter pwszVersion output masih diatur ke nilai yang benar setelah kesalahan ini.
E_NO_INTERFACE Antarmuka riidProcess tidak tersedia.
CORDBG_E_UNSUPPORTED_VERSION_STRUCT Struktur CLR_DEBUGGING_VERSION tidak memiliki nilai yang dikenali untuk wStructVersion. Satu-satunya nilai yang diterima saat ini adalah 0.

Pengecualian

Komentar

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: CorDebug.idl, CorDebug.h

Perpustakaan: CorGuids.lib

Versi .NET Framework: Tersedia sejak 4

Versi .NET: Tersedia sejak .NET Core 2.1

Lihat juga