PEReader.TryOpenAssociatedPortablePdb メソッド

定義

この PE イメージに関連付けられているポータブル PDB を開きます。

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

パラメーター

peImagePath
String

PE イメージへのパス。 このパスは、PE ファイルが含まれているディレクトリ内で PDB ファイルを検索するために使用されます。

pdbFileStreamProvider
Func<String,Stream>

指定されている場合、指定されたファイル パスの Stream を開くために呼び出されます。 プロバイダーは、読み取り可能でシーク可能な Stream、またはターゲット ファイルが存在しないか、何らかの理由で無視する必要がある場合は、null のいずれかを返す必要があります。 予期しない IO エラーが原因でファイルを開くことができない場合、プロバイダーは IOException をスローする必要があります。

pdbReaderProvider
MetadataReaderProvider

成功した場合は、 の MetadataReaderProvider 新しいインスタンスを使用してポータブル PDB を読み取る。

pdbPath
String

正常に終了し、PDB がファイル内で見つかった場合は、ファイルへのパス、または PDB が PE イメージ自体に埋め込まれている場合は null が使用されます。

戻り値

PE イメージに PDB が関連付けられていて、PDB が正常に開かれている場合は true、それ以外の場合は false

例外

peImagePath または pdbFileStreamProvidernull です。

pdbFileStreamProvider から返されたストリームでは、読み取りとシークの操作がサポートされません。

次のエラーにより、一致する PDB ファイルが見つかりませんでした。PE イメージまたは PDB が無効です。

次のエラーにより、一致する PDB ファイルが見つかりませんでした。PE イメージまたは PDB の読み取り中に IO エラーが発生しました。

注釈

このメソッドは、PE イメージのデバッグ ディレクトリの内容に基づいて単純な PDB ファイル参照を実装します。 より高度なツールでは、検索パスまたはシンボル サーバーに対する追加の検索をフォローアップする必要がある場合があります。

メソッドは、次の順序で PDB を検索します。

  1. PE ファイル (のディレクトリ) を含むディレクトリの CodeView エントリで見つかった名前の peImagePath一致する PDB ファイルを確認します。
  2. PE イメージ自体に埋め込まれた PDB を確認します。

デバッグ ディレクトリで指定された情報と一致する最初の PDB が返されます。

適用対象