IDiaDataSource::loadAndValidateDataFromPdb
Abre e verifica se o arquivo de banco de dados do programa (.pdb) corresponde às informações de assinatura fornecidas e prepara o arquivo .pdb como uma fonte de dados de depuração.
Sintaxe
HRESULT loadAndValidateDataFromPdb (
LPCOLESTR pdbPath,
GUID* pcsig70,
DWORD sig,
DWORD age
);
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.
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. Antes de preparar a fonte de dados, esse método verifica se a assinatura e a idade do arquivo .pdb nomeado correspondem aos valores fornecidos.
Para carregar um arquivo .pdb e validar com a pré-busca, use o IDiaDataSourceEx::loadAndValidateDataFromPdbEx
método.
Para carregar um arquivo .pdb sem validação, use o IDiaDataSource::loadDataFromPdb
método.
Para obter acesso ao processo de carregamento de dados (por meio de um mecanismo de retorno de chamada), use o IDiaDataSource::loadDataForExe
método.
Para carregar um arquivo .pdb diretamente da memória, use o IDiaDataSource::loadDataFromIStream
método.
Para validar um arquivo .pdb sem carregá-lo, use o IDiaDataSourceEx::ValidatePdb
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;
HRESULT hr;
hr = pSource->loadAndValidateDataFromPdb( L"yprog.pdb",
&expectedGUIDSignature,
expectedFileSignature,
expectedAge);
if (FAILED(hr))
{
// Report an error
}