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
}