Partilhar via


Método ICLRDebuggingLibraryProvider3::P rovideUnixLibrary

Permite que o depurador forneça um caminho para uma biblioteca de depuração CLR (Common Language Runtime) específica da versão no macOS e Linux.

Sintaxe

HRESULT ProvideUnixLibrary (
     [in] const WCHAR* pwszFileName,
     [in] const WCHAR* pwszRuntimeModule,
     [in] LIBRARY_PROVIDER_INDEX_TYPE indexType,
     [in] BYTE* pbBuildId,
     [in] int iBuildIdSize,
     [out] LPWSTR* ppResolvedModulePath);

Parâmetros

pwszFilename
[em] O nome do módulo que está sendo solicitado.

pwszRuntimeModule
[em] O tempo de execução ou o caminho do módulo de arquivo único.

indexType
[em] O tipo de informação de índice (pBuildId) fornecida. Veja LIBRARY_PROVIDER_INDEX_TYPE enum.

pbBuildId
[em] A ID de compilação do módulo Linux ou macOS. Pode ser nulo se algo deu errado recuperando o id de compilação.

iBuildIdSize
[em] O número de bytes na matriz pbBuildId. Pode ser 0 se algo deu errado recuperando o id de compilação.

ppResolvedModulePath
[saídas] Este é um caminho terminado nulo para a dll do módulo. No Unix ele deve ser alocado com CoTaskMemAlloc. No Unix deve ser alocado com malloc. O fracasso deixa-o intocado. Veja a nota de segurança abaixo!

Valor devolvido

Esse método retorna os seguintes erros específicos de HRESULT, bem como HRESULT que indicam falha de método.

HRESULTADO Description
S_OK O método foi concluído com êxito.

Observações

ProvideUnixLibrary permite que o depurador forneça módulos necessários para depurar arquivos CLR específicos, como mscordbi.dll e mscordacwks.dll.

O depurador pode usar qualquer meio disponível para localizar ou adquirir o módulo de depuração.

Importante

Esse recurso permite que o chamador da API forneça módulos que contêm código executável e, possivelmente, malicioso. Como precaução de segurança, o chamador não deve usar ProvideUnixLibrary para distribuir qualquer código que não esteja disposto a executar.

Se um problema de segurança sério for descoberto em uma biblioteca já lançada, como mscordbi.dll ou mscordacwks.dll, o shim pode ser corrigido para reconhecer as versões incorretas dos arquivos. O shim pode então emitir solicitações para as versões corrigidas dos arquivos e rejeitar as versões incorretas se elas forem fornecidas em resposta a qualquer solicitação. Isso pode ocorrer somente se o usuário tiver corrigido para uma nova versão do shim. As versões sem patches permanecerão vulneráveis.

Requisitos

Plataformas: Consulte Sistemas operacionais suportados pelo .NET.

Cabeçalho: dbgshim.h

Biblioteca: dbgshim.dll, libdbgshim.so, libdbgshim.dylib

Versões do .NET: Disponível desde o .NET Core 2.1