IDiaDataSource::loadAndValidateDataFromPdb
Otevře a ověří, že soubor databáze programu (.pdb) odpovídá zadaným informacím o podpisu a připraví soubor .pdb jako zdroj dat ladění.
Syntaxe
HRESULT loadAndValidateDataFromPdb (
LPCOLESTR pdbPath,
GUID* pcsig70,
DWORD sig,
DWORD age
);
Parametry
pdbPath
[v] Cesta k souboru .pdb.
pcsig70
[v] Podpis globálně jedinečného identifikátoru (GUID) pro ověření podpisu souboru PDB. Pouze soubory .pdb v jazyce Visual C++ a novější mají podpisy GUID.
sig
[v] 32bitový podpis, který se má ověřit u podpisu souboru PDB.
age
[v] Věková hodnota, která se má ověřit. Věk nemusí nutně odpovídat žádné známé časové hodnotě, slouží k určení, zda je soubor .pdb mimo synchronizaci s odpovídajícím .exe souborem.
Návratová hodnota
V případě úspěchu vrátí hodnotu S_OK
; v opačném případě vrátí kód chyby. Následující tabulka ukazuje možné návratové hodnoty pro tuto metodu.
Hodnota | Popis |
---|---|
E_PDB_NOT_FOUND |
Soubor se nepodařilo otevřít nebo soubor má neplatný formát. |
E_PDB_FORMAT |
Pokusil se o přístup k souboru s zastaralým formátem. |
E_PDB_INVALID_SIG |
Podpis se neshoduje. |
E_PDB_INVALID_AGE |
Věk se neshoduje. |
E_INVALIDARG |
Neplatný parametr. |
E_UNEXPECTED |
Zdroj dat je již připravený. |
Poznámky
Soubor PDB obsahuje podpisové i věkové hodnoty. Tyto hodnoty se replikují v souboru .exe nebo .dll, který odpovídá souboru .pdb. Před přípravou zdroje dat tato metoda ověří, že signatura souboru .pdb a stáří odpovídají zadaným hodnotám.
K načtení souboru .pdb a ověření pomocí předběžného načtení použijte metodu IDiaDataSourceEx::loadAndValidateDataFromPdbEx
.
K načtení souboru .pdb bez ověření použijte metodu IDiaDataSource::loadDataFromPdb
.
Pokud chcete získat přístup k procesu načítání dat (prostřednictvím mechanismu zpětného volání), použijte metodu IDiaDataSource::loadDataForExe
.
K načtení souboru .pdb přímo z paměti použijte metodu IDiaDataSource::loadDataFromIStream
.
K ověření souboru .pdb bez načtení použijte metodu IDiaDataSourceEx::ValidatePdb
.
Příklad
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
}