PEReader.TryOpenAssociatedPortablePdb Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ö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.
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:
- 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. - Sucht nach einem PDB, der im PE-Image selbst eingebettet ist.
Der erste PDB, der den im Debugverzeichnis angegebenen Informationen entspricht, wird zurückgegeben.