Condividi tramite


PEReader.TryOpenAssociatedPortablePdb Metodo

Definizione

Apre un PDB portatile associato a questa immagine 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

Parametri

peImagePath
String

Percorso dell'immagine PE. Il percorso viene usato per individuare il file PDB che si trova nella directory contenente il file PE.

pdbFileStreamProvider
Func<String,Stream>

Se specificato, viene chiamato per aprire un Stream per un percorso di file specificato. Si prevede che il provider restituisca un Stream leggibile e ricercabile oppure null se il file di destinazione non esiste o deve essere ignorato per qualche motivo. Il provider deve generare IOException se non riesce ad aprire il file a causa di un errore di I/O imprevisto.

pdbReaderProvider
MetadataReaderProvider

In caso di esito positivo, viene usata una nuova istanza di MetadataReaderProvider da usare per leggere il PDB portabile.

pdbPath
String

Se l'operazione ha esito positivo e il PDB viene trovato in un file, il percorso del file o null se il PDB è incorporato nell'immagine PE.

Restituisce

true se all'immagine PE è associato un PDB e il PDB è stato aperto correttamente; in caso contrario, false.

Eccezioni

peImagePath o pdbFileStreamProvider è null.

Il flusso restituito da pdbFileStreamProvider non supporta le operazioni di lettura e ricerca.

Non è stato trovato alcun file PDB corrispondente a causa di un errore: l'immagine PE o il PDB non è valido.

Non è stato trovato alcun file PDB corrispondente a causa di un errore: si è verificato un errore di I/O durante la lettura dell'immagine PE o del PDB.

Commenti

Questo metodo implementa una semplice ricerca di file PDB in base al contenuto della directory di debug dell'immagine PE. Uno strumento più sofisticato potrebbe dover eseguire il completamento con ricerche aggiuntive sui percorsi di ricerca o su un server di simboli.

Il metodo ha l'aspetto del database PDB nell'ordine seguente:

  1. Verifica la presenza di un file PDB corrispondente del nome trovato nella voce CodeView nella directory contenente il file PE (directory di peImagePath).
  2. Verifica la presenza di un database PDB incorporato nell'immagine PE stessa.

Viene restituito il primo PDB che corrisponde alle informazioni specificate nella directory di debug.

Si applica a