IDiaDataSourceEx ::ValidatePdbEx
Vérifie que le fichier de base de données du programme (.pdb) correspond aux informations de signature fournies.
Syntaxe
HRESULT ValidatePdb (
LPCOLESTR pdbPath,
const GUID* pcsig70,
DWORD sig,
DWORD age,
BOOL* pfStripped
);
Paramètres
pdbPath
[entrée] Chemin d’accès au fichier .pdb.
pcsig70
[in] Signature d’identificateur global unique (GUID) à vérifier par rapport à la signature du fichier .pdb. Seuls les fichiers .pdb dans Visual C++ et versions ultérieures ont des signatures GUID.
sig
[entrée] Signature 32 bits à vérifier par rapport à la signature de fichier .pdb.
age
[entrée] Valeur d’âge à vérifier. L’âge ne correspond pas nécessairement à une valeur de temps connue, il est utilisé pour déterminer si un fichier .pdb n’est pas synchronisé avec un fichier .exe correspondant.
pfStripped
[out] Si la base de données PDB correspond aux autres informations, ce paramètre est défini pour indiquer si la base de données PDB a été supprimée des symboles privés. Il s’agit de la même valeur que celle retournée par IDiaSymbol ::get_isStripped. Si la base de données PDB ne correspond pas aux autres valeurs, ou si cette méthode échoue, ce paramètre n’est pas spécifié.
Valeur de retour
En cas de réussite, retourne S_OK
, sinon, retourne un code d'erreur. Le tableau suivant montre les valeurs possibles pour cette méthode.
Valeur | Description |
---|---|
E_PDB_NOT_FOUND |
Impossible d’ouvrir le fichier, ou fichier de format non valide. |
E_PDB_FORMAT |
Tentative d’accès à un fichier dont le format est obsolète. |
E_PDB_INVALID_SIG |
La signature ne correspond pas. |
E_PDB_INVALID_AGE |
L’âge ne correspond pas. |
E_INVALIDARG |
Paramètre non valide. |
E_UNEXPECTED |
La source de données a déjà été préparée. |
Notes
Un fichier .pdb contient des valeurs de signature et d’âge. Ces valeurs sont répliquées dans le fichier .exe ou .dll qui correspond au fichier .pdb. Cette méthode vérifie que la signature et l’âge du fichier .pdb nommés correspondent aux valeurs fournies sans charger la base de données PDB ou la préparer pour une utilisation.
Pour charger un fichier .pdb sans validation, utilisez la IDiaDataSourceEx::loadDataFromPdbEx
méthode.
Pour charger et valider le fichier .pdb par rapport à des critères spécifiques, utilisez la IDiaDataSourceEx::loadAndValidateDataFromPdbEx
méthode.
Exemple
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
}