Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Fournit un contexte de requête étendu pour les symboles de débogage.
Syntaxe
IDiaSessionEx : IDiaSession
Méthode
Le tableau suivant présente les méthodes de IDiaSessionEx.
| Méthode | Description |
|---|---|
IDiaSessionEx::isFastLinkPDB |
Récupère une valeur booléenne indiquant que les informations de débogage source ont été produites avec /DEBUG:fastlink. |
IDiaSessionEx::isPortablePDB |
Récupère une valeur booléenne indiquant que les informations de débogage source utilisent le format PDB portable . |
| 'IDiaSessionEx ::getSourceLinkInfo' | Récupère une énumération des informations de lien source. |
Remarques
Il est important d’appeler la méthode IDiaSession::put_loadAddress après avoir créé l’objet IDiaSession ( et la valeur passée à la méthode put_loadAddress doit être différente de zéro ) pour que les propriétés d’adresse virtuelle (VA) des symboles soient accessibles. L’adresse de chargement provient du programme chargé par l’exécutable en cours de débogage. Par exemple, vous pouvez appeler la fonction Win32 GetModuleInformation pour récupérer l’adresse de chargement de l’exécutable, en fonction d’un handle à l’exécutable.
Étant donné que IDiaSessionEx hérite de IDiaSession, il alos a toutes les mêmes méthodes et peut être passé à n’importe quelle fonction qui accepte une IDiaSession.
Exemple
Cet exemple montre comment obtenir l’interface IDiaSessionEx dans le cadre d’une initialisation générale du SDK Dia (Debug Interface Access).
CComPtr<IDiaDataSource> pSource;
ComPtr<IDiaSessionEx> psessionex;
void InitializeDIA(const char *szFilename)
{
HRESULT hr = CoCreateInstance( CLSID_DiaSource,
NULL,
CLSCTX_INPROC_SERVER,
__uuidof( IDiaDataSource ),
(void **) &pSource);
if (FAILED(hr))
{
Fatal("Could not CoCreate CLSID_DiaSource. Register msdia140.dll." );
}
wchar_t wszFilename[ _MAX_PATH ];
mbstowcs( wszFilename,
szFilename,
sizeof( wszFilename )/sizeof( wszFilename[0] ) );
if ( FAILED( pSource->loadDataFromPdb( wszFilename ) ) )
{
if ( FAILED( pSource->loadDataForExe( wszFilename, NULL, NULL ) ) )
{
Fatal( "loadDataFromPdb/Exe" );
}
}
ComPtr<IDiaSession> psession;
if ( FAILED( pSource->openSession( &psession ) ) )
{
Fatal( "openSession" );
}
if ( FAILED( psession.QueryInterface(&psessionex) ) )
{
Fatal( "Failed to upgrade from IDiaSession to IDiaSessionEx, are you using an older version of msdia140.dll?" );
}
}
Exigences
En-tête : Dia2.h
Bibliothèque : diaguids.lib
DLL : msdia140.dll
Voir aussi
- interfaces (Sdk Debug Interface Access)
- Vue d’ensemble
- exe
IDiaAddressMapIDiaDataSourceIDiaDataSource::openSession- interroger le . Fichier Pdb