IDiaSession

Fournit un contexte de requête pour les symboles de débogage.

Syntaxe

IDiaSession : IUnknown

Méthodes

Le tableau suivant présente les méthodes de IDiaSession.

Méthode Description
IDiaSession::get_loadAddress Récupère l’adresse de chargement du fichier exécutable qui correspond aux symboles de ce magasin de symboles. Il s’agit de la même valeur que celle passée à la méthode put_loadAddress.
IDiaSession::put_loadAddress Définit l’adresse de chargement du fichier exécutable qui correspond aux symboles de ce magasin de symboles. Remarque : Il est important d’appeler cette méthode lorsque vous obtenez un objet IDiaSession et avant de commencer à l’utiliser.
IDiaSession::get_globalScope Récupère une référence à la portée globale.
IDiaSession::getEnumTables Récupère un énumérateur pour toutes les tables contenues dans le magasin de symboles.
IDiaSession::getSymbolsByAddr Récupère un énumérateur pour tous les symboles nommés à des emplacements statiques.
IDiaSession::findChildren Récupère tous les enfants d’un identificateur parent spécifié qui correspondent au nom et au type de symbole.
IDiaSession::findSymbolByAddr Récupère un type de symbole spécifié qui contient ou est le plus proche d’une adresse spécifiée.
IDiaSession::findSymbolByRVA Récupère un type de symbole spécifié qui contient ou est le plus proche d’une adresse virtuelle relative (RVA) spécifiée.
IDiaSession::findSymbolByVA Récupère un type de symbole spécifié qui contient ou est le plus proche d’une adresse virtuelle spécifiée.
IDiaSession::findSymbolByToken Récupère le symbole qui contient un jeton de métadonnées spécifié.
IDiaSession::symsAreEquiv Vérifie si deux symboles sont équivalents.
IDiaSession::symbolById Récupère un symbole par son identificateur unique.
IDiaSession::findSymbolByRVAEx Récupère un type de symbole spécifié qui contient, ou est le plus proche, une adresse virtuelle relative et un décalage spécifiés.
IDiaSession::findSymbolByVAEx Récupère un type de symbole spécifié qui contient ou est le plus proche d’une adresse virtuelle et d’un décalage spécifiés.
IDiaSession::findFile Récupère un fichier source par compiland et par nom.
IDiaSession::findFileById Récupère un fichier source par identificateur de fichier source.
IDiaSession::findLines Récupère les numéros de ligne dans un identificateur de fichier de compilation et de fichier source spécifiés.
IDiaSession::findLinesByAddr Récupère les lignes d’une compilation spécifiée et qui contiennent une adresse spécifiée.
IDiaSession::findLinesByRVA Récupère les lignes d’une compilation spécifiée et qui contiennent une adresse virtuelle relative spécifiée.
IDiaSession::findLinesByVA Recherche les informations de numéro de ligne pour les lignes contenues dans une plage d’adresses spécifiée.
IDiaSession::findLinesByLinenum Récupère les lignes dans un compiland spécifié par fichier source et numéro de ligne.
IDiaSession::findInjectedSource Récupère une source qui a été placée dans le magasin de symboles par les fournisseurs d’attributs ou d’autres composants du processus de compilation.
IDiaSession::getEnumDebugStreams Récupère une séquence énumérée de flux de données de débogage.
IDiaSession::findInlineFramesByAddr Récupère une énumération qui permet à un client d’itérer au sein de tous les frames inline sur une adresse donnée.
IDiaSession::findInlineFramesByRVA Récupère une énumération qui permet à un client d’itérer au sein de tous les frames inline sur une adresse virtuelle relative (RVA) spécifiée.
IDiaSession::findInlineFramesByVA Récupère une énumération qui permet à un client d’itérer au sein de tous les frames inline sur une adresse virtuelle spécifiée.
IDiaSession::findInlineeLines Récupère une énumération qui permet à un client d’itérer dans les informations de numéro de ligne de toutes les fonctions insérées, directement ou indirectement, par le symbole parent spécifié.
IDiaSession::findInlineeLinesByAddr Récupère une énumération qui permet à un client d’itérer dans les informations de numéro de ligne de toutes les fonctions insérées, directement ou indirectement, par le symbole parent spécifié et qui sont contenues dans la plage d’adresses spécifiée.
IDiaSession::findInlineeLinesByRVA Récupère une énumération qui permet à un client d’itérer dans les informations de numéro de ligne de toutes les fonctions insérées, directement ou indirectement, par le symbole parent spécifié et qui sont contenues dans l’adresse virtuelle relative (RVA) spécifiée.
IDiaSession::findInlineeLinesByVA Récupère une énumération qui permet à un client d’itérer dans les informations de numéro de ligne de toutes les fonctions insérées, directement ou indirectement, par le symbole parent spécifié et qui sont contenues dans l’adresse virtuelle (VA) spécifiée.
IDiaSession::findInlineeLinesByLinenum Récupère une énumération qui permet à un client d’itérer dans les informations de numéro de ligne de toutes les fonctions insérées, directement ou indirectement, dans le fichier source et le numéro de ligne spécifiés.
IDiaSession::findInlineesByName Récupère une énumération qui permet à un client d’itérer au sein des informations de numéro de ligne de toutes les fonctions insérées qui correspondent à un nom spécifié.
IDiaSession::findSymbolsForAcceleratorPointerTag Retourne une énumération de symboles pour la variable à laquelle correspond la valeur de balise spécifiée dans la fonction stub Accelerator parente.
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag Avec une valeur de balise correspondante, cette méthode retourne une énumération de symboles contenus dans une fonction stub Accelerator parente spécifiée à une adresse virtuelle relative spécifiée.
IDiaSession::findAcceleratorInlineesByName Retourne une énumération de symboles pour les frames inline correspondant au nom de fonction inline spécifié.
IDiaSession::findAcceleratorInlineesByLinenum Retourne une énumération de symboles pour les frames inline qui correspondent à l’emplacement source spécifié.

Notes

Il est important d’appeler la méthode IDiaSession::p ut_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 toutes les propriétés d’adresse virtuelle (VA) des symboles soient accessibles. L’adresse de chargement provient du programme qui a chargé 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, pour un certain descripteur d’exécutable.

Exemple

Cet exemple montre comment obtenir l’interface IDiaSession dans le cadre d’une initialisation générale du SDK DIA.

CComPtr<IDiaDataSource> pSource;
ComPtr<IDiaSession> psession;

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 msdia80.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" );
        }
    }
    if ( FAILED( pSource->openSession( &psession ) ) )
    {
        Fatal( "openSession" );
    }
}

Configuration requise

En-tête : Dia2.h

Bibliothèque : diaguids.lib

DLL : msdia80.dll

Voir aussi