IDiaDataSource::loadAndValidateDataFromPdb
Ouvre et vérifie que le fichier de base de données du programme (.pdb) correspond aux informations de signature fournies, et prépare le fichier .pdb comme source de données de débogage.
HRESULT loadAndValidateDataFromPdb (
LPCOLESTR pdbPath,
GUID* pcsig70,
DWORD sig,
DWORD age
);
Paramètres
pdbPath
[in] Le chemin d'accès du fichier .pdb.pcsig70
[in] La signature de GUID à vérifier par rapport à la signature de fichier .pdb. Seuls les fichiers .pdb dans Visual C++ et ont ultérieurement des signatures GUID.sig
[in] La signature 32 bits à vérifier par rapport à la signature de fichier .pdb.age
[in] Valeur de personnes à vérifier. L'âge ne correspond toujours à aucune valeur d'heure, il est utilisée pour déterminer si un fichier .pdb est pas synchronisé avec un fichier .exe correspondant.
Valeur de retour
En cas de réussite, retourne S_OK; sinon, retourne un code d'erreur. Le tableau suivant montre les valeurs de retour possibles de cette méthode.
Valeur |
Description |
---|---|
E_PDB_NOT_FOUND |
pour ouvrir le fichier, ou le fichier a un format valide. |
E_PDB_FORMAT |
Tenté d'accéder à un fichier par un format 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 la signature et les valeurs de personnes. Ces valeurs sont répliquées dans le fichier .exe ou .DLL qui correspond au fichier .pdb. Avant de préparer la source de données, cette méthode vérifie que la signature nommée et l'âge du fichier .pdb correspondent aux valeurs fournies.
Pour charger un fichier .pdb sans validation, utilisez la méthode d' IDiaDataSource::loadDataFromPdb .
Pour accéder au processus de chargement de données (via un mécanisme de rappel), utilisez la méthode d' IDiaDataSource::loadDataForExe .
Pour charger un fichier .pdb directement de mémoire, utilisez la méthode d' IDiaDataSource::loadDataFromIStream .
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;
HRESULT hr;
hr = pSource->loadAndValidateDataFromPdb( L"yprog.pdb",
&expectedGUIDSignature,
expectedFileSignature,
expectedAge);
if (FAILED(hr))
{
// Report an error
}
Voir aussi
Référence
IDiaDataSource::loadDataForExe