Поделиться через


PEReader.TryOpenAssociatedPortablePdb Метод

Определение

Открывает переносимый PDB, связанный с этим образом PE.

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. Этот путь используется для поиска PDB-файла, который находится в каталоге, содержащем PE-файл.

pdbFileStreamProvider
Func<String,Stream>

Если указан, вызывается для открытия Stream для заданного пути к файлу. Поставщик должен возвращать либо доступный для чтения и поиска Stream, либо значение null, если целевой файл не существует либо по какой-либо причине должен быть проигнорирован. Поставщик должен выдать IOException, если ему не удается открыть файл из-за непредвиденной ошибки ввода-вывода.

pdbReaderProvider
MetadataReaderProvider

В случае успеха новый экземпляр MetadataReaderProvider будет использоваться для чтения переносимого PDB-файла.

pdbPath
String

Если операция выполнена успешно и PDB найден в файле, путь к файлу, либо null, если PDB внедрен в сам образ PE.

Возвращаемое значение

Значение true, если образ PE имеет связанный с ним PDB, который был успешно открыт; в противном случае значение false.

Исключения

Параметр peImagePath или pdbFileStreamProvider имеет значение null.

Поток, возвращенный из pdbFileStreamProvider, не поддерживает операции чтения и поиска.

Соответствующий PDB-файл не найден из-за ошибки: Недопустимый образ PE или PDB.

Соответствующий PDB-файл не найден из-за ошибки: При чтении образа PE или PDB произошла ошибка ввода-вывода.

Комментарии

Этот метод реализует простой поиск PDB-файла на основе содержимого каталога отладки образа PE. Более сложному средству может потребоваться дополнительный поиск по путям поиска или серверу символов.

Метод выполняет поиск PDB в следующем порядке:

  1. Проверяет наличие совпадающего PDB-файла с именем, найденным в записи CodeView в каталоге, содержавом PE-файл (каталог peImagePath).
  2. Проверяет наличие PDB-файла, внедренного в сам образ PE.

Возвращается первый PDB-файл, соответствующий сведениям, указанным в каталоге отладки.

Применяется к