ICLRDebugging::OpenVirtualProcess (Método)
Obtiene la interfaz ICorDebugProcess que corresponde a un módulo de Common Language Runtime (CLR) cargado en el proceso.
Sintaxis
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);
Parámetros
moduleBaseAddress
[in] Dirección base de un módulo en el proceso de destino. COR_E_NOT_CLR se devolverá si el módulo especificado no es un módulo CLR.
pDataTarget
[in] Abstracción de destino de datos que permite al depurador administrado inspeccionar el estado del proceso. El depurador debe implementar la interfaz ICorDebugDataTarget. Debe implementar la interfaz ICLRDebuggingLibraryProvider para admitir escenarios en los que el CLR que se depura no se instala localmente en el equipo.
pLibraryProvider
[in] Interfaz de devolución de llamada del proveedor de bibliotecas que permite buscar y cargar a petición bibliotecas de depuración específicas de la versión. Este parámetro solo es necesario si ppProcess
o pFlags
no es null
.
pMaxDebuggerSupportedVersion
[in] La versión más alta de CLR que este depurador puede depurar. Debe especificar las versiones principales, secundarias y de compilación de la versión más reciente de CLR que admite este depurador y establecer el número de revisión en 65535 para dar cabida a futuras versiones de mantenimiento de CLR in situ.
riidProcess
[in] Id. de la interfaz ICorDebugProcess que se va a recuperar. Actualmente, los únicos valores aceptados son IID_CORDEBUGPROCESS3, IID_CORDEBUGPROCESS2 y IID_CORDEBUGPROCESS.
ppProcess
[out] Puntero a la interfaz COM que identifica riidProcess
.
pVersion
[in, out] Versión de CLR. En la entrada, este valor puede ser null
. También puede apuntar a una estructura CLR_DEBUGGING_VERSION, en cuyo caso el campo wStructVersion
de a estructura debe inicializarse en 0 (cero).
En la salida, la estructura CLR_DEBUGGING_VERSION
devuelta se rellenará con la información de versión de CLR.
pdwFlags
[out] Marcas informativas sobre el runtime especificado. Vea el tema CLR_DEBUGGING_PROCESS_FLAGS para obtener una descripción de las marcas.
Valor devuelto
Este método devuelve los siguientes HRESULT específicos y los errores HRESULT que indican un error del método.
HRESULT | Descripción |
---|---|
S_OK | El método se completó correctamente. |
E_POINTER | pDataTarget es null . |
CORDBG_E_LIBRARY_PROVIDER_ERROR | La devolución de llamada de ICLRDebuggingLibraryProvider devuelve un error o no proporciona un identificador válido. |
CORDBG_E_MISSING_DATA_TARGET_INTERFACE | pDataTarget no implementa las interfaces de destino de datos necesarias para esta versión del runtime. |
CORDBG_E_NOT_CLR | El módulo indicado no es un módulo CLR. Este HRESULT también se devuelve cuando no se puede detectar un módulo CLR porque la memoria está dañada, el módulo no está disponible o la versión de CLR es posterior a la versión de correcciones de compatibilidad (shim). |
CORDBG_E_UNSUPPORTED_DEBUGGING_MODEL | Esta versión del runtime no admite este modelo de depuración. Actualmente, las versiones de CLR anteriores a .NET Framework 4 no admiten el modelo de depuración. El parámetro de salida pwszVersion todavía se establece en el valor correcto después de este error. |
CORDBG_E_UNSUPPORTED_FORWARD_COMPAT | La versión de CLR es mayor que la versión que admite este depurador. El parámetro de salida pwszVersion todavía se establece en el valor correcto después de este error. |
E_NO_INTERFACE | La interfaz riidProcess no está disponible. |
CORDBG_E_UNSUPPORTED_VERSION_STRUCT | La estructura CLR_DEBUGGING_VERSION no tiene un valor reconocido para wStructVersion . El único valor aceptado en este momento es 0. |
Excepciones
Observaciones
Requisitos
Plataformas: Vea Requisitos de sistema.
Encabezado: CorDebug.idl, CorDebug.h
Biblioteca: CorGuids.lib
Versiones de .NET Framework: disponible a partir de la versión 4
Versiones de .NET: disponible a partir de .NET Core 2.1