Partager via


IDiaSession

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

Syntaxe

IDiaSession : IUnknown

Méthode

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 à utiliser l’objet.
IDiaSession::get_globalScope Récupère une référence à l’étendue 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::findChildrenEx Récupère tous les enfants d’un identificateur parent spécifié qui correspondent au nom et au type de symbole, y compris les locaux optimisés.
IDiaSession::findChildrenExByAddr Récupère tous les enfants d’un identificateur parent spécifié qui correspondent au nom et au type de symbole, y compris les locaux optimisés, qui contiennent ou sont les plus proches, d’une adresse spécifiée.
IDiaSession::findChildrenExByVA Récupère tous les enfants d’un identificateur parent spécifié qui correspondent au nom et au type de symbole, y compris les locaux optimisés, qui contiennent ou sont les plus proches d’une adresse virtuelle spécifiée (VA).
IDiaSession::findChildrenExByRVA Récupère tous les enfants d’un identificateur parent spécifié qui correspondent au nom et au type de symbole, y compris les locaux optimisés, qui contiennent ou sont les plus proches, d’une adresse virtuelle relative spécifiée (RVA).
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 (VA).
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 qui est le plus proche, d’une adresse virtuelle relative et d’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 compilation et nom.
IDiaSession::findFileById Récupère un fichier source par identificateur de fichier source.
IDiaSession::findLines Récupère les numéros de ligne au sein d’une compilation et d’un identificateur de fichier source spécifiés.
IDiaSession::findLinesByAddr Récupère les lignes d’une compilation spécifiée qui contiennent une adresse spécifiée.
IDiaSession::findLinesByRVA Récupère les lignes d’une compilation spécifiée 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 d’une compilation spécifiée 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’effectuer une itération dans toutes les trames inline sur une adresse donnée.
IDiaSession::findInlineFramesByRVA Récupère une énumération qui permet à un client d’effectuer une itération dans l’ensemble des trames inline sur une adresse virtuelle relative (RVA) spécifiée.
IDiaSession::findInlineFramesByVA Récupère une énumération qui permet à un client d’effectuer une itération dans toutes les trames inline sur une adresse virtuelle spécifiée.
IDiaSession::findInlineeLines Récupère une énumération qui permet à un client d’effectuer une itération au sein des 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 au sein des 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 au sein des 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 spécifiée (RVA).
IDiaSession::findInlineeLinesByVA 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 inline, directement ou indirectement, par le symbole parent spécifié et qui sont contenues dans l’adresse virtuelle spécifiée (VA).
IDiaSession::findInlineeLinesByLinenum 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 inline, 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’effectuer une itération au sein des informations de numéro de ligne de toutes les fonctions inline qui correspondent à un nom spécifié.
IDiaSession::findAcceleratorInlineesByLinenum Retourne une énumération de symboles pour les frames inline qui correspondent à l’emplacement source 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 de l’accélérateur parent.
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag Étant donné une valeur de balise correspondante, cette méthode retourne une énumération de symboles contenus dans une fonction stub d’accélérateur parent spécifiée à une adresse virtuelle relative spécifiée.
IDiaSession::findAcceleratorInlineesByName Retourne une énumération de symboles pour les cadres inline correspondant au nom de fonction inline spécifié.
IDiaSession::addressForVA Retourne l’adresse équivalente pour l’adresse virtuelle spécifiée (VA).
IDiaSession::addressForRVA Retourne l’adresse équivalente pour l’adresse virtuelle relative spécifiée (RVA).
IDiaSession::findILOffsetsByAddr Récupère une énumération qui permet à un client d’effectuer une itération au sein des décalages MSIL au sein d’une plage d’adresses spécifiée.
IDiaSession::findILOffsetsByRVA Récupère une énumération qui permet à un client d’effectuer une itération via les décalages MSIL au sein d’une plage d’adresses virtuelles relatives (RVA) spécifiée.
IDiaSession::findILOffsetsByVA Récupère une énumération qui permet à un client d’effectuer une itération via les décalages MSIL au sein d’une plage d’adresses virtuelles (VA) spécifiée.
IDiaSession::findInputAssemblyFiles Récupère une énumération qui permet à un client d’effectuer une itération dans les fichiers d’assembly d’entrée .NET Native.
IDiaSession::findInputAssembly Récupère un fichier d’assembly d’entrée .NET Native par index.
IDiaSession::findInputAssemblyById Récupère le fichier d’assembly d’entrée .NET Native par identificateur unique.
IDiaSession::getFuncMDTokenMapSize Récupère la taille, en octets, du mappage de jetons de fonction de métadonnées .NET Native.
IDiaSession::getFuncMDTokenMap Récupère le contenu du mappage de jetons de fonction de métadonnées .NET Native.
IDiaSession::getTypeMDTokenMapSize Récupère la taille, en octets, du mappage de jetons de type de métadonnées .NET Native.
IDiaSession::getTypeMDTokenMap Récupère le contenu du mappage de jetons de type de métadonnées .NET Native.
IDiaSession::getNumberOfFunctionFragments_VA Récupère le nombre de fragments discontigués pour la fonction à l’adresse virtuelle spécifiée (VA).
IDiaSession::getNumberOfFunctionFragments_RVA Récupère le nombre de fragments discontiguous pour la fonction au niveau de l’adresse virtuelle relative (RVA) spécifiée.
IDiaSession::getFunctionFragments_VA Récupère les adresses et les longueurs des fragments discontigués pour la fonction à l’adresse virtuelle spécifiée (VA).
IDiaSession::getFunctionFragments_RVA Récupère les adresses et les longueurs des fragments discontigués pour la fonction au niveau de l’adresse virtuelle relative (RVA) spécifiée.
IDiaSession::getExports Récupère un énumérateur pour tous les symboles exportés.
IDiaSession::getHeapAllocationSites Récupère un énumérateur pour tous les symboles SymTagHeapAllocationSite.
IDiaSession::findInputAssemblyFile Récupère le fichier d’assembly d’entrée .NET Native qui est le parent du symbole spécifié.

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.

Exemple

Cet exemple montre comment obtenir l’interface IDiaSession dans le cadre d’une initialisation générale du SDK Dia (Debug Interface Access).

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" );
    }
}

Exigences

En-tête : Dia2.h

Bibliothèque : diaguids.lib

DLL : msdia80.dll

Voir aussi