Partager via


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::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.
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 inclus 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 inlined, 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’effectuer une itération dans les informations de numéro de ligne de toutes les fonctions insérées (inlined), directement ou indirectement, par le symbole parent spécifié et qui sont contenues dans l’adresse virtuelle 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::findAcceleratorInlineesByLinenum Retourne une énumération de symboles pour les frames inclus qui correspondent à l’emplacement source spécifié.
IDiaSession::findSymbolsForAcceleratorPointerTag Renvoie une énumération de symboles pour la variable à laquelle correspond la valeur d’étiquette spécifiée dans la fonction stub Accelerator parente.
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag Compte tenu d’une valeur de balise correspondante, cette méthode retourne une énumération de symboles contenus dans une fonction stub Accélérateur parente spécifiée à l’adresse virtuelle relative indiquée.
IDiaSession::findAcceleratorInlineesByName Retourne une énumération de symboles pour les frames 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 SymTagHeapAllocationSite symboles.
IDiaSession::findInputAssemblyFile Récupère le fichier d’assembly d’entrée .NET Native qui est le parent du symbole spécifié.

Notes

Il est important d’appeler la IDiaSession::put_loadAddress méthode après avoir créé l’objet IDiaSession et que la valeur passée à la put_loadAddress méthode 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 (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" );
    }
}

Spécifications

En-tête : Dia2.h

Bibliothèque : diaguids.lib

DLL : msdia80.dll

Voir aussi