IDiaDataSource::loadAndValidateDataFromPdb
Otwiera i sprawdza, czy plik bazy danych (.pdb) program odpowiada podpisu informacje i przygotowuje plik .pdb jako źródło danych do programu debug.
HRESULT loadAndValidateDataFromPdb (
LPCOLESTR pdbPath,
GUID* pcsig70,
DWORD sig,
DWORD age
);
Parametry
pdbPath
[w] Ścieżka do pliku .pdb.pcsig70
[w] Podpis GUID do weryfikacji podpisu pliku .pdb..Pdb tylko pliki w Visual C++ i nowszych wersji dysponują podpisów identyfikatora GUID.sig
[w] Podpis 32-bitowe do weryfikacji podpisu pliku .pdb.age
[w] Sprawdź wartości wieku.Wiek nie muszą odpowiadać wartości czasu znane, jest używany do określenia, jeśli plik .pdb jest zsynchronizowany z odpowiedniego pliku .exe.
Wartość zwracana
Jeśli się powiedzie, zwraca S_OK; w przeciwnym razie zwraca kod błędu.Poniższej tabeli przedstawiono możliwe wartości zwracane dla tej metody.
Wartość |
Opis |
---|---|
E_PDB_NOT_FOUND |
Nie można otworzyć plik lub plik ma nieprawidłowy format. |
E_PDB_FORMAT |
Nastąpiła próba uzyskania dostępu do pliku w formacie przestarzałe. |
E_PDB_INVALID_SIG |
Podpis nie odpowiada. |
E_PDB_INVALID_AGE |
Wiek nie pasuje. |
WARTOŚĆ E_INVALIDARG |
Nieprawidłowy parametr. |
E_UNEXPECTED |
Źródło danych zostało już przygotowane. |
Uwagi
Plik .pdb zawiera wartości zarówno podpis, jak i wieku.Wartości te są replikowane w pliku .exe lub .dll, który pasuje do pliku .pdb.Przed przygotowaniem źródła danych, ta metoda sprawdza, czy podpis i wiek pliku nazwanym .pdb są zgodne z wartościami, pod warunkiem.
Aby załadować plik .pdb bez sprawdzania poprawności, należy użyć IDiaDataSource::loadDataFromPdb metody.
Aby uzyskać dostęp do procesu ładowania danych (poprzez mechanizm wywołania zwrotnego), należy użyć IDiaDataSource::loadDataForExe metody.
Aby załadować plik .pdb bezpośrednio z pamięci, należy użyć IDiaDataSource::loadDataFromIStream metody.
Przykład
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
}
Zobacz też
Informacje
IDiaDataSource::loadDataForExe