IDiaDataSource::loadAndValidateDataFromPdb
Открывает и проверяет, что файл базы данных программы (pdb) соответствует предоставленным данным о подписи и подготавливает pdb-файл в качестве источника данных отладки.
HRESULT loadAndValidateDataFromPdb (
LPCOLESTR pdbPath,
GUID* pcsig70,
DWORD sig,
DWORD age
);
Параметры
pdbPath
[in] путь к файлу pdb.pcsig70
[in] идентификатор GUID подпись, подлежащая проверке подписи для файла pdb. Только pdb-файлы in Visual C++ и более поздние версии имеют подписи GUID.sig
[in] 32 (sp2) подпись, подлежащая проверке подписи для файла pdb.age
[in] значение age, который требуется проверить. Длительность не обязательно соответствует любое известное значение времени, него используется для определения если pdb-файл из синхронизации с соответствующим exe-файла.
Возвращаемое значение
В случае успеха возвращает S_OK; в противном случае возвращает код ошибки. В следующей таблице приведены возможные возвращаемые значения для данного метода.
Значение |
Описание |
---|---|
E_PDB_NOT_FOUND |
Не удалось открыть файл или же файл имеет недопустимый формат. |
E_PDB_FORMAT |
Предпринята попытка получить доступ к файлу с устаревшими форматом. |
E_PDB_INVALID_SIG |
Сигнатура не совпадает. |
E_PDB_INVALID_AGE |
Age. |
E_INVALIDARG |
Недопустимый параметр. |
E_UNEXPECTED |
Источник данных уже был подготовлен. |
Заметки
Pdb-файл содержит и сигнатурой и значения длительности. Эти значения будут реплицированы в exe- или dll-файла, соответствующий файлу pdb. Подготовка источника данных, прежде чем этот метод проверяет, что подпись и длительность pdb-файла с именами соответствующих предоставленным значения.
Чтобы загрузить файл pdb без проверки, используйте IDiaDataSource::loadDataFromPdb метод.
Чтобы получить доступ к процессу загрузки данных (через механизм обратного вызова, используйте) IDiaDataSource::loadDataForExe метод.
Чтобы загрузить файл pdb непосредственно из памяти, используйте IDiaDataSource::loadDataFromIStream метод.
Пример
IDiaDataSource* pSource; // Previously created data source.
DEFINE_GUID(expectedGUIDSignature,0x1234,0x5678,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08);
DWORD expectedFileSignature = 0x12345678;
DWORD expectedAge = 128;
HRESULT hr;
hr = pSource->loadAndValidateDataFromPdb( L"yprog.pdb",
&expectedGUIDSignature,
expectedFileSignature,
expectedAge);
if (FAILED(hr))
{
// Report an error
}
См. также
Ссылки
IDiaDataSource::loadDataForExe