IDiaDataSource::loadAndValidateDataFromPdb
Otwiera plik i sprawdza, czy plik bazy danych programu (.pdb) jest zgodny z podanymi informacjami o podpisie i przygotowuje plik .pdb jako źródło danych debugowania.
Składnia
HRESULT loadAndValidateDataFromPdb (
LPCOLESTR pdbPath,
GUID* pcsig70,
DWORD sig,
DWORD age
);
Parametry
pdbPath
[in] Ścieżka do pliku .pdb.
pcsig70
[in] Sygnatura globalnie unikatowego identyfikatora (GUID) do weryfikacji względem podpisu pliku .pdb. Tylko pliki .pdb w programie Visual C++ i nowszych mają podpisy GUID.
sig
[in] Podpis 32-bitowy do zweryfikowania pod sygnaturą pliku .pdb.
age
[in] Wartość wieku do zweryfikowania. Wiek nie musi odpowiadać każdej znanej wartości czasu, służy do określenia, czy plik pdb nie jest zsynchronizowany z odpowiednim plikiem .exe.
Wartość zwracana
Jeśli operacja powiedzie się, zwraca wartość S_OK
; w przeciwnym razie zwraca kod błędu. W poniższej tabeli przedstawiono możliwe wartości zwracane dla tej metody.
Wartość | Opis |
---|---|
E_PDB_NOT_FOUND |
Nie można otworzyć pliku lub plik ma nieprawidłowy format. |
E_PDB_FORMAT |
Podjęto próbę uzyskania dostępu do pliku w przestarzałym formacie. |
E_PDB_INVALID_SIG |
Podpis nie jest zgodny. |
E_PDB_INVALID_AGE |
Wiek nie jest zgodny. |
E_INVALIDARG |
Nieprawidłowy parametr. |
E_UNEXPECTED |
Źródło danych zostało już przygotowane. |
Uwagi
Plik .pdb zawiera zarówno wartości sygnatury, jak i wieku. Te wartości są replikowane w pliku .exe lub .dll, który jest zgodny z plikiem .pdb. Przed przygotowaniem źródła danych ta metoda sprawdza, czy sygnatura i wiek nazwanego pliku .pdb są zgodne z podanymi wartościami.
Aby załadować plik .pdb i sprawdzić poprawność przy użyciu pobierania IDiaDataSourceEx::loadAndValidateDataFromPdbEx
wstępnego, użyj metody .
Aby załadować plik .pdb bez walidacji, użyj IDiaDataSource::loadDataFromPdb
metody .
Aby uzyskać dostęp do procesu ładowania danych (za pomocą mechanizmu wywołania zwrotnego), użyj IDiaDataSource::loadDataForExe
metody .
Aby załadować plik .pdb bezpośrednio z pamięci, użyj IDiaDataSource::loadDataFromIStream
metody .
Aby zweryfikować plik .pdb bez ładowania go, użyj IDiaDataSourceEx::ValidatePdb
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
}