IDiaSessionEx
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
IDiaAddressMap
IDiaDataSource
IDiaDataSource::openSession
- interroger le . Fichier Pdb