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

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

pdbPath
String

成功し、PDB がファイル内に見つかった場合、ファイルへのパス、または PDB が PE イメージ自体に埋め込まれている場合に null

返品

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

例外

peImagePath または pdbFileStreamProvidernull

pdbFileStreamProviderから返されるストリームは、読み取りとシークの操作をサポートしていません。

エラーが原因で一致する PDB ファイルが見つかりませんでした:PE イメージまたは PDB が無効です。

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

注釈

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

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

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

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

適用対象