Freigeben über


PEReader.TryOpenAssociatedPortablePdb Methode

Definition

Öffnet eine portierbare PDB-Datei, die diesem PE-Image zugeordnet ist.

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

Parameter

peImagePath
String

Der Pfad zum PE-Image. Der Pfad wird verwendet, um die PDB-Datei in dem Verzeichnis zu suchen, das die PE-Datei enthält.

pdbFileStreamProvider
Func<String,Stream>

Wird falls angegeben aufgerufen, um eine Stream-Klasse für einen bestimmten Dateipfad zu öffnen. Es wird erwartet, dass der Anbieter entweder eine lesbare und durchsuchbare Stream-Klasse oder null zurückgibt, wenn die Zieldatei nicht vorhanden ist oder aus irgendeinem Grund ignoriert werden soll. Der Anbieter sollte IOException auslösen, wenn die Datei aufgrund eines unerwarteten E/A-Fehlers nicht geöffnet werden kann.

pdbReaderProvider
MetadataReaderProvider

Bei erfolgreicher Ausführung wird ein neuer instance von, der MetadataReaderProvider zum Lesen des portablen PDB verwendet werden soll.

pdbPath
String

Bei Erfolg und falls die PDB-Datei in einer Datei gefunden wird, der Pfad zur Datei, oder null, falls die PDB-Datei in das PE-Image selbst eingebettet ist.

Gibt zurück

true, wenn dem PE-Image eine PDB-Datei zugeordnet ist und die PDB-Datei erfolgreich geöffnet wurde. Andernfalls false.

Ausnahmen

peImagePath oder pdbFileStreamProvider ist null.

Der von pdbFileStreamProvider zurückgegebene Datenstrom unterstützt keine Lese- und Suchvorgänge.

Aufgrund eines Fehlers wurde keine übereinstimmende PDB-Datei gefunden: Das PE-Image oder die PDB-Datei ist ungültig.

Aufgrund eines Fehlers wurde keine übereinstimmende PDB-Datei gefunden: E/A-Fehler beim Lesen des PE-Image oder der PDB-Datei.

Hinweise

Diese Methode implementiert eine einfache PDB-Dateisuche basierend auf dem Inhalt des PE-Image-Debugverzeichnisses. Ein komplexeres Tool muss möglicherweise weitere Suchvorgänge für Suchpfade oder einen Symbolserver durchführen.

Die Methode sucht den PDB in der folgenden Reihenfolge:

  1. Sucht nach einer übereinstimmenden PDB-Datei mit dem Namen, der sich im CodeView-Eintrag in dem Verzeichnis befindet, das die PE-Datei (das Verzeichnis von peImagePath) enthält.
  2. Sucht nach einem PDB, der im PE-Image selbst eingebettet ist.

Der erste PDB, der den im Debugverzeichnis angegebenen Informationen entspricht, wird zurückgegeben.

Gilt für: