Udostępnij za pośrednictwem


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

IDiaDataSource::loadDataForExe

IDiaDataSource::loadDataFromPdb

IDiaDataSource::loadDataFromIStream