Partager via


IDiaDataSource ::loadDataFromMiscInfo

Ouvre et prépare les données de débogage associées au .exe/.dll fichier.

Syntaxe

HRESULT loadDataFromMiscInfo (
   LPCOLESTR executable,
   LPCOLESTR searchPath,
   DWORD     timeStampExe,
   DWORD     timeStampDbg,
   DWORD     sizeOfExe,
   DWORD     cbMiscInfo,
   BYTE*     pbMiscInfo,
   IUnknown* pCallback
);

Paramètres

executable

[in] Chemin d’accès au ou .exe au .dll fichier.

searchPath

[in] Autres chemins d’accès pour rechercher des données de débogage. Plusieurs chemins doivent être délimités par des points-virgules. Les chemins d’accès peuvent contenir un chemin de \fin .

timeStampExe

[in] Horodatage alternatif pour l’image exécutable.

timeStampDbg

[in] Horodatage alternatif pour les informations de débogage.

sizeOfExe

[in] Autre taille de l’image exécutable en octets.

cbMiscInfo

[in] Taille en octets du pbMiscInfo paramètre.

pbMiscInfo

[in] En-tête de débogage de remplacement au IMAGE_DEBUG_MISC format qui fournit le nom de fichier avec les informations de débogage.

pCallback

[in] Interface IUnknown d’un objet qui prend en charge une interface de rappel de débogage, telle que le IDiaLoadCallback, IDiaLoadCallback2le , et IDiaReadExeAtOffsetCallback/ou les IDiaReadExeAtRVACallback interfaces.

Valeur de retour

Si elle réussit, 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 Descriptif
E_PDB_NOT_FOUND Impossible d’ouvrir le fichier, ou le fichier a un format non valide.
E_PDB_FORMAT Tentative d’accès à un fichier avec 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.

Remarques

PbMiscInfo remplace les informations de débogage dans l’image exécutable et nomme l’emplacement de données de débogage associé. Les horodatages et la taille sont utilisés pour correspondre aux informations de débogage.

Si vous chargez des données de débogage à partir d’un serveur de symboles, symsrv.dll devez être présent dans le même répertoire où l’application de l’utilisateur ou msdia140.dll est installé, ou il doit être présent dans le répertoire système.

Cette méthode 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, il IDiaLoadCallback::NotifyDebugDir est appelé lorsque la IDiaDataSource::loadDataForExe méthode recherche et traite un répertoire de débogage.

Les IDiaReadExeAtOffsetCallback interfaces permettent IDiaReadExeAtRVACallback à l’application cliente de fournir d’autres méthodes pour lire les données à partir du fichier exécutable lorsque le fichier ne peut pas être accessible directement via les E/S de fichier standard.

Pour charger un fichier .pdb sans validation, utilisez la IDiaDataSource::loadDataFromPdb méthode.

Pour valider le fichier .pdb par rapport à des critères spécifiques, utilisez la IDiaDataSource::loadAndValidateDataFromPdb méthode.

Pour charger un fichier .pdb directement à partir de la mémoire, utilisez la IDiaDataSource::loadDataFromIStream méthode.

Pour valider un fichier .pdb sans le charger, utilisez la méthode IDiaDataSourceEx ::ValidatePdb .

Exemple :

DWORD dwTimeStamp = 0x3BF1C039;
DWORD dwSizeImage = 0x0000A000;
BYTE pbMiscInfo[0x110] = {
  ...
};
HRESULT hr = pSource->loadDataFromMiscInfo( L"myprog.exe", L".\debug", dwTimeStamp, dwTimeStamp, dwSizeOfImage, sizeof(pbMiscInfo), pbMiscInfo, nullptr);
if (FAILED(hr))
{
    // Report error
}

Voir aussi