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-файл.
Если указан, вызывается для открытия 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 в следующем порядке:
- Проверяет наличие совпадающего PDB-файла с именем, найденным в записи CodeView в каталоге, содержавом PE-файл (каталог
peImagePath
). - Проверяет наличие PDB-файла, внедренного в сам образ PE.
Возвращается первый PDB-файл, соответствующий сведениям, указанным в каталоге отладки.