Método ICLRDebugging::OpenVirtualProcess
Obtém a interface ICorDebugProcess que corresponde a um módulo CLR (common language runtime) carregado no processo.
Sintaxe
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] O endereço básico de um módulo no processo de destino. COR_E_NOT_CLR será retornado se o módulo especificado não for um módulo CLR.
pDataTarget
[in] Uma abstração do destino de dados que permite que o depurador gerenciado inspecione o estado do processo. O depurador deve implementar a interface ICorDebugDataTarget. Você deve implementar a interface ICLRDebuggingLibraryProvider para dar suporte a cenários em que o CLR que está sendo depurado não está instalado localmente no computador.
pLibraryProvider
[in] Uma interface de retorno de chamada do provedor de biblioteca que permite que as bibliotecas de depuração específicas por versão sejam localizadas e carregadas sob demanda. Esse parâmetro será necessário somente se ppProcess
ou pFlags
não for null
.
pMaxDebuggerSupportedVersion
[in] A versão de número mais alto do CLR que esse depurador pode depurar. Você deve especificar as versões principais, secundárias e de build da versão mais recente do CLR compatível com esse depurador e definir o número de revisão como 65535 para acomodar futuras versões de manutenção de CLR in-loco.
riidProcess
[in] A ID da interface do ICorDebugProcess a ser recuperada. Atualmente, os únicos valores aceitos são IID_CORDEBUGPROCESS3, IID_CORDEBUGPROCESS2 e IID_CORDEBUGPROCESS.
ppProcess
[out] Um ponteiro para a interface COM que é identificada pelo riidProcess
.
pVersion
[in, out] A versão do CLR. Na entrada, esse valor pode ser null
. Ele também pode apontar para uma estrutura CLR_DEBUGGING_VERSION, nesse caso, o campo da estrutura wStructVersion
deve ser inicializado como 0 (zero).
Na saída, a estrutura CLR_DEBUGGING_VERSION
retornada será preenchida com as informações de versão do CLR.
pdwFlags
[out] Sinalizadores informativos sobre o runtime especificado. Confira o tópico CLR_DEBUGGING_PROCESS_FLAGS para obter uma descrição dos sinalizadores.
Valor Retornado
Esse método retorna os seguintes HRESULTs específicos, bem como erros HRESULT que indicam falha de método.
HRESULT | Descrição |
---|---|
S_OK | O método foi concluído com sucesso. |
E_POINTER | pDataTarget é null . |
CORDBG_E_LIBRARY_PROVIDER_ERROR | O retorno de chamada ICLRDebuggingLibraryProvider retorna um erro ou não fornece um identificador válido. |
CORDBG_E_MISSING_DATA_TARGET_INTERFACE | pDataTarget não implementa as interfaces de destino de dados necessárias para essa versão do runtime. |
CORDBG_E_NOT_CLR | O módulo indicado não é um módulo CLR. Esse HRESULT também é retornado quando um módulo CLR não pode ser detectado porque a memória foi corrompida, o módulo não está disponível ou a versão CLR é posterior à versão shim. |
CORDBG_E_UNSUPPORTED_DEBUGGING_MODEL | Essa versão de runtime não dá suporte a esse modelo de depuração. Atualmente, o modelo de depuração não é compatível com versões CLR antes do .NET Framework 4. O parâmetro de saída pwszVersion ainda é definido como o valor correto após esse erro. |
CORDBG_E_UNSUPPORTED_FORWARD_COMPAT | A versão do CLR é maior do que a versão que esse depurador afirma dar suporte. O parâmetro de saída pwszVersion ainda é definido como o valor correto após esse erro. |
E_NO_INTERFACE | A interface riidProcess não está disponível. |
CORDBG_E_UNSUPPORTED_VERSION_STRUCT | A estrutura CLR_DEBUGGING_VERSION não tem um valor reconhecido para wStructVersion . O único valor aceito neste momento é 0. |
Exceções
Comentários
Requisitos
Plataformas: confira Requisitos do sistema.
Cabeçalho: CorDebug.idl, CorDebug.h
Biblioteca: CorGuids.lib
Versões do .NET Framework: disponíveis desde 4
Versões do .NET: disponível desde o .NET Core 2.1