PEReader.TryOpenAssociatedPortablePdb Método

Definição

Abre um PDB portátil associado a esta imagem PE.

public:
 bool TryOpenAssociatedPortablePdb(System::String ^ peImagePath, Func<System::String ^, System::IO::Stream ^> ^ pdbFileStreamProvider, [Runtime::InteropServices::Out] System::Reflection::Metadata::MetadataReaderProvider ^ % pdbReaderProvider, [Runtime::InteropServices::Out] System::String ^ % pdbPath);
public bool TryOpenAssociatedPortablePdb (string peImagePath, Func<string,System.IO.Stream?> pdbFileStreamProvider, out System.Reflection.Metadata.MetadataReaderProvider? pdbReaderProvider, out string? pdbPath);
public bool TryOpenAssociatedPortablePdb (string peImagePath, Func<string,System.IO.Stream> pdbFileStreamProvider, out System.Reflection.Metadata.MetadataReaderProvider pdbReaderProvider, out string pdbPath);
member this.TryOpenAssociatedPortablePdb : string * Func<string, System.IO.Stream> * MetadataReaderProvider * string -> bool
Public Function TryOpenAssociatedPortablePdb (peImagePath As String, pdbFileStreamProvider As Func(Of String, Stream), ByRef pdbReaderProvider As MetadataReaderProvider, ByRef pdbPath As String) As Boolean

Parâmetros

peImagePath
String

O caminho para a imagem PE. O caminho é usado para localizar o arquivo PDB localizado no diretório que contém o arquivo PE.

pdbFileStreamProvider
Func<String,Stream>

Se especificado, é chamado para abrir um Stream para o caminho de arquivo determinado. O provedor deverá retornar um Stream legível e pesquisável ou null se o arquivo de destino não existir ou precisar ser ignorado por algum motivo. O provedor deverá gerar IOException se não for possível abrir o arquivo devido a um erro de E/S inesperado.

pdbReaderProvider
MetadataReaderProvider

Se tiver êxito, uma nova instância de MetadataReaderProvider a ser usada para ler o PDB portátil.

pdbPath
String

Se for bem-sucedido e o PDB for encontrado em um arquivo, o caminho para o arquivo ou null se o PDB for inserido na própria imagem PE.

Retornos

true se a imagem PE tiver um PDB associado a ela e o PDB tiver sido aberto com êxito; caso contrário, false.

Exceções

peImagePath ou pdbFileStreamProvider é null.

O fluxo retornado de pdbFileStreamProvider não é compatível com as operações de leitura e busca.

Nenhum arquivo PDB correspondente foi encontrado devido a um erro: a imagem PE ou o PDB é inválido.

Nenhum arquivo PDB correspondente foi encontrado devido a um erro: ocorreu um erro de E/S ao ler a imagem PE ou o PDB.

Comentários

Esse método implementa uma pesquisa de arquivo PDB simples com base no conteúdo do Diretório de Depuração da imagem PE. Uma ferramenta mais sofisticada pode precisar acompanhar com pesquisa adicional em caminhos de pesquisa ou um servidor de símbolos.

O método procura o PDB na seguinte ordem:

  1. Verifica se há um arquivo PDB correspondente do nome encontrado na entrada CodeView no diretório que contém o arquivo PE (o diretório de peImagePath).
  2. Verifica se há um PDB inserido na própria imagem PE.

O primeiro PDB que corresponde às informações especificadas no Diretório de Depuração é retornado.

Aplica-se a