Método ICLRDebuggingLibraryProvider3::ProvideUnixLibrary
Permite que o depurador forneça um caminho para uma biblioteca de depuração do CLR (Common Language Runtime) específica da versão no macOS e no 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
[in] O nome do módulo que está sendo solicitado.
pwszRuntimeModule
[in] O caminho do módulo de runtime ou de arquivo único.
indexType
[in] O tipo de informações de índice (pBuildId) fornecidas. Confira a enumeração LIBRARY_PROVIDER_INDEX_TYPE.
pbBuildId
[in] A ID de build do módulo Linux ou macOS. Poderá ser nulo se algo der errado pela recuperação da ID de build.
iBuildIdSize
[in] O número de bytes na matriz pbBuildId. Poderá ser 0 se algo der errado na recuperação da ID de build.
ppResolvedModulePath
[out] Este é um caminho com terminação nula para a dll do módulo. No UNIX, ele deve ser alocado com CoTaskMemAlloc. No UNIX, ele deve ser alocado com malloc. A falha o deixa intocado. Veja observação de segurança abaixo!
Retornar valor
Esse método retorna o HRESULT específico a seguir, bem como erros HRESULT que indicam falha de método.
HRESULT | Descrição |
---|---|
S_OK |
O método foi concluído com sucesso. |
Comentários
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 de API forneça módulos que contenham um código executável e possivelmente mal-intencionado. Como precaução de segurança, o chamador não deve usar ProvideUnixLibrary
para distribuir qualquer código que não esteja disposto a se executar.
Se um problema sério de segurança for descoberto em uma biblioteca já lançada, como mscordbi.dll ou mscordacwks.dll, o shim poderá ser corrigido para reconhecer as versões incorretas dos arquivos. Em seguida, o shim poderá 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 só poderá ocorrer se o usuário tiver corrigido uma nova versão do shim. As versões sem correção permanecerão vulneráveis.
Requisitos
Plataformas: confira Sistemas operacionais com suporte no .NET.
Cabeçalho: dbgshim.h
Biblioteca: dbgshim.dll, libdbgshim.so, libdbgshim.dylib
Versões do .NET: disponível desde o .NET Core 2.1