다음을 통해 공유


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을 throw해야 합니다.

pdbReaderProvider
MetadataReaderProvider

성공하면 의 새 instance 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 항목에 있는 이름의 일치하는 PDB 파일을 확인합니다 peImagePath.
  2. PE 이미지 자체에 포함된 PDB를 확인합니다.

디버그 디렉터리에 지정된 정보와 일치하는 첫 번째 PDB가 반환됩니다.

적용 대상