IDiaDataSource::loadDataForExe
Ouvre et prépare les données de débogage associées au fichier de .exe/.dll.
HRESULT loadDataForExe (
LPCOLESTR executable,
LPCOLESTR searchPath,
IUnknown* pCallback
);
Paramètres
exécutable
[in] Chemin d'accès au fichier .exe ou au fichier .DLL.searchPath
[in] Chemin d'accès de substitution pour rechercher les informations de débogage.pCallback
[in] Une interface d' IUnknown d'un objet qui prend en charge une interface de rappel de débogage, telles qu' IDiaLoadCallback, IDiaLoadCallback2, IDiaReadExeAtOffsetCallback, et/ou les interfaces d' IDiaReadExeAtRVACallback .
Valeur de retour
En cas de réussite, retourne S_OK; sinon, retourne un code d'erreur. Le tableau suivant répertorie certains des codes d'erreur 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
L'en-tête de débogage des noms de fichiers de .exe/.dll la colocalisation des données associée au débogage.
Cette méthode lit l'en-tête puis les recherches de débogage pour et prépare les données de débogage. La progression de la recherche peut, éventuellement, être stockée et contrôlée par les rappels. Par exemple, IDiaLoadCallback::NotifyDebugDir est appelé lorsque la méthode d' IDiaDataSource::loadDataForExe recherche et traite un répertoire debug.
Les interfaces d' IDiaReadExeAtOffsetCallback et d' IDiaReadExeAtRVACallback permettent l'application cliente de fournir d'autres méthodes pour lire des données à partir de le fichier exécutable lorsque le fichier n'est pas accessible directement via l'E/S de fichier standard.
Pour charger un fichier .pdb sans validation, utilisez la méthode d' IDiaDataSource::loadDataFromPdb .
Pour valider le fichier .pdb à des critères spécifiques, utilisez la méthode d' IDiaDataSource::loadAndValidateDataFromPdb .
Pour charger un fichier .pdb directement de mémoire, utilisez la méthode d' IDiaDataSource::loadDataFromIStream .
Exemple
class MyCallBack: public IDiaLoadCallback
{
...
};
MyCallBack callback;
...
HRESULT hr = pSource->loadDataForExe( L"myprog.exe", L".\debug", (IUnknown*)&callback);
if (FAILED(hr))
{
// Report error
}
Voir aussi
Référence
IDiaLoadCallback::NotifyDebugDir
IDiaDataSource::loadDataFromPdb