Partilhar via


IDiaDataSourceEx::ValidatePdbEx

Verifica se o arquivo do banco de dados do programa (.pdb) corresponde às informações de assinatura fornecidas.

Sintaxe

HRESULT ValidatePdb ( 
   LPCOLESTR    pdbPath,
   const GUID*  pcsig70,
   DWORD        sig,
   DWORD        age,
   BOOL*        pfStripped
);

Parâmetros

pdbPath

[in] O caminho para o arquivo .pdb.

pcsig70

[em] A assinatura do identificador global exclusivo (GUID) para verificar a assinatura do arquivo .pdb. Somente arquivos .pdb no Visual C++ e posteriores têm assinaturas GUID.

sig

[in] A assinatura de 32 bits a ser verificada na assinatura do arquivo .pdb.

age

[in] Valor de idade a ser verificado. A idade não corresponde necessariamente a nenhum valor de tempo conhecido, ela é usada para determinar se um arquivo .pdb está fora de sincronia com um arquivo .exe correspondente.

pfStripped

[fora] Se o PDB corresponder às outras informações, esse parâmetro será definido para indicar se o PDB foi despojado de símbolos privados. Esse é o mesmo valor que seria retornado por IDiaSymbol::get_isStripped. Se o PDB não corresponder aos outros valores ou se esse método falhar, esse parâmetro não será especificado.

Valor de retorno

Se tiver êxito, retornará S_OK. Caso contrário, retornará um código de erro. A tabela a seguir mostra os possíveis valores retornados para esse método.

Valor Descrição
E_PDB_NOT_FOUND Falha ao abrir o arquivo, ou o arquivo tem um formato inválido.
E_PDB_FORMAT Ocorreu uma tentativa de acessar um arquivo com um formato obsoleto.
E_PDB_INVALID_SIG A assinatura não corresponde.
E_PDB_INVALID_AGE A idade não corresponde.
E_INVALIDARG Parâmetro inválido.
E_UNEXPECTED A fonte de dados já foi preparada.

Comentários

Um arquivo .pdb contém valores de assinatura e idade. Esses valores são replicados no arquivo .exe ou .dll que corresponde ao arquivo .pdb. Esse método verifica se a assinatura e a idade do arquivo .pdb nomeado correspondem aos valores fornecidos sem carregar o PDB ou prepará-lo para uso.

Para carregar um arquivo .pdb sem validação, use o IDiaDataSourceEx::loadDataFromPdbEx método.

Para carregar e validar o arquivo .pdb em relação a critérios específicos, use o IDiaDataSourceEx::loadAndValidateDataFromPdbEx método.

Exemplo

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;
BOOL fStripped              = FALSE;

HRESULT hr;
hr = pSource->lValidatePdb( L"myprog.pdb",
                            &expectedGUIDSignature,
                            expectedFileSignature,
                            expectedAge,
                            &fStripped);
if (FAILED(hr))
{
    // Report an error
}

Confira também