IDiaDataSource::loadDataForExe
Ouvre et prépare les données de débogage associées au fichier .exe/.dll.
Syntaxe
HRESULT loadDataForExe (
LPCOLESTR executable,
LPCOLESTR searchPath,
IUnknown* pCallback
);
Paramètres
executable
[in] Chemin du fichier .exe ou .dll.
searchPath
[in] Autre chemin pour rechercher des données de débogage.
pCallback
[in] Interface IUnknown
pour un objet qui prend en charge une interface de rappel de débogage, telle que les interfaces IDiaLoadCallback, IDiaLoadCallback2, IDiaReadExeAtOffsetCallback et/ou IDiaReadExeAtRVACallback.
Valeur renvoyée
En cas de réussite, retourne S_OK
, sinon, retourne un code d'erreur. Le tableau suivant présente certains des codes d’erreur 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. |
Remarques
L’en-tête de débogage du fichier .exe/.dll nomme l’emplacement des données de débogage associées.
Si vous chargez les données de débogage à partir d’un serveur de symboles, symsrv.dll doit se trouver dans le même répertoire que celui où l’application de l’utilisateur ou msdia140.dll est installé, ou être présent dans le répertoire système.
Cette méthode lit l’en-tête de débogage, puis recherche et prépare les données de débogage. La progression de la recherche peut éventuellement être signalée et contrôlée par le biais de rappels. Par exemple, IDiaLoadCallback::NotifyDebugDir est appelé lorsque la méthode IDiaDataSource::loadDataForExe
recherche et traite les données d’un répertoire de débogage.
Les interfaces IDiaReadExeAtOffsetCallback et IDiaReadExeAtRVACallback permettent à l’application cliente de fournir d’autres méthodes de lecture des données à partir du fichier exécutable dans le cas où le fichier n’est pas accessible directement par le biais d’E/S de fichier standard.
Pour charger un fichier .pdb sans validation, utilisez la méthode IDiaDataSource::loadDataFromPdb.
Pour valider le fichier .pdb par rapport à des critères spécifiques, utilisez la méthode IDiaDataSource::loadAndValidateDataFromPdb.
Pour charger un fichier .pdb directement de la mémoire, utilisez la méthode 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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour