IDiaDataSourceEx::loadAndValidateDataFromPdbEx
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 en tant que source de données de débogage, avec prérécupération d’enregistrement facultative.
Syntaxe
HRESULT loadAndValidateDataFromPdbEx (
LPCOLESTR pdbPath,
GUID* pcsig70,
DWORD sig,
DWORD age,
BOOL fPdbPrefetching
);
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.
fPdbPrefetching
[in] Si la valeur est définie TRUE
, les enregistrements de débogage adjacents sont prérécupérés en mémoire, en remplaçant potentiellement de nombreuses opérations d’E/S de fichiers plus petites avec moins d’opérations plus volumineuses, et ainsi améliorer le débit global, car ces enregistrements sont ensuite accessibles, au détriment de l’utilisation potentiellement accrue de la mémoire. Si la valeur est définie FALSE
, cela se comporte de façon identique à IDiaDataSource::loadAndValidateDataFromPdb
. Si la valeur est définie sur une autre valeur, le comportement 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. Avant de préparer la source de données, cette méthode vérifie que la signature et l’âge du fichier .pdb nommé correspondent aux valeurs fournies.
Pour charger un fichier .pdb sans validation, utilisez la IDiaDataSourceEx::loadDataFromPdbEx
méthode.
Pour accéder au processus de chargement des données (via un mécanisme de rappel), utilisez la IDiaDataSourceEx::loadDataForExeEx
méthode.
Pour charger un fichier .pdb directement à partir de la mémoire, utilisez la IDiaDataSourceEx::loadDataFromIStreamEx
méthode.
Pour valider un fichier .pdb sans le charger, utilisez la IDiaDataSourceEx::ValidatePdb
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;
HRESULT hr;
hr = pSource->loadAndValidateDataFromPdbEx( L"yprog.pdb",
&expectedGUIDSignature,
expectedFileSignature,
expectedAge,
TRUE);
if (FAILED(hr))
{
// Report an error
}