Метод ICLRDebugging::OpenVirtualProcess
Возвращает интерфейс ICorDebugProcess, соответствующий модулю среды CLR, загруженного в процесс.
Синтаксис
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);
Параметры
moduleBaseAddress
[in] Базовый адрес модуля в целевом процессе. COR_E_NOT_CLR возвращается, если указанный модуль не является модулем CLR.
pDataTarget
[in] Абстракция целевого объекта данных, которая позволяет управляемому отладчику проверять состояние процесса. Отладчик должен реализовать интерфейс ICorDebugDataTarget . Необходимо реализовать интерфейс ICLRDebuggingLibraryProvider для поддержки сценариев, в которых среда CLR, которая выполняется отладка, не установлена локально на компьютере.
pLibraryProvider
[in] Интерфейс обратного вызова поставщика библиотеки, позволяющий находить и загружать библиотеки отладки для конкретной версии по запросу. Этот параметр требуется только в том случае, если ppProcess
или pFlags
нет null
.
pMaxDebuggerSupportedVersion
[in] Самая высокая версия среды CLR, которую может выполнить отладчик. Необходимо указать основные, незначительные и сборки версии из последней версии СРЕДЫ CLR, поддерживаемые отладчиком, и задать номер редакции 65535 для размещения будущих выпусков обслуживания CLR на месте.
riidProcess
[in] Идентификатор извлекаемого интерфейса ICorDebugProcess. В настоящее время единственными допустимыми значениями являются IID_CORDEBUGPROCESS3, IID_CORDEBUGPROCESS2 и IID_CORDEBUGPROCESS.
ppProcess
[out] Указатель на com-интерфейс, который определяется riidProcess
.
pVersion
[in, out] Версия среды CLR. В входных данных это значение может быть null
. Он также может указывать на CLR_DEBUGGING_VERSION структуру, в этом случае поле структуры wStructVersion
должно быть инициализировано до 0 (ноль).
В выходных данных возвращаемая CLR_DEBUGGING_VERSION
структура будет заполнена сведениями о версии среды CLR.
pdwFlags
[out] Информационные флаги для указанной среды выполнения. Описание флагов см. в разделе CLR_DEBUGGING_PROCESS_FLAGS .
Возвращаемое значение
Этот метод возвращает следующие конкретные результаты HRESULT, а также ошибки HRESULT, которые указывают на сбой метода.
HRESULT | Description |
---|---|
S_OK | Метод завершился успешно. |
E_POINTER | pDataTarget имеет значение null . |
CORDBG_E_LIBRARY_PROVIDER_ERROR | Обратный вызов ICLRDebuggingLibraryProvider возвращает ошибку или не предоставляет допустимый дескриптор. |
CORDBG_E_MISSING_DATA_TARGET_INTERFACE | pDataTarget не реализует необходимые целевые интерфейсы данных для этой версии среды выполнения. |
CORDBG_E_NOT_CLR | Указанный модуль не является модулем СРЕДЫ CLR. Этот HRESULT также возвращается, если модуль CLR не может быть обнаружен, так как память повреждена, модуль недоступен, или версия СРЕДЫ CLR позже версии схимы. |
CORDBG_E_UNSUPPORTED_DEBUGGING_MODEL | Эта версия среды выполнения не поддерживает эту модель отладки. В настоящее время модель отладки не поддерживается версиями СРЕДЫ CLR до платформа .NET Framework 4. Выходной pwszVersion параметр по-прежнему имеет правильное значение после этой ошибки. |
CORDBG_E_UNSUPPORTED_FORWARD_COMPAT | Версия среды CLR больше версии, поддерживаемой этим отладчиком. Выходной pwszVersion параметр по-прежнему имеет правильное значение после этой ошибки. |
E_NO_INTERFACE | Интерфейс riidProcess недоступен. |
CORDBG_E_UNSUPPORTED_VERSION_STRUCT | Структура CLR_DEBUGGING_VERSION не имеет распознаваемого значения для wStructVersion . Единственное принятое значение в настоящее время равно 0. |
Исключения
Замечания
Требования
Платформы: см. раздел Требования к системе.
Заголовок: CorDebug.idl, CorDebug.h
Библиотека: CorGuids.lib
версии платформа .NET Framework: Доступно с 4
Версии .NET: доступны с .NET Core 2.1