Partager via


IDiaSession

Fournit une zone de requête pour des symboles de débogage.

IDiaSession : IUnknown

Méthodes

Le tableau suivant répertorie les méthodes d' IDiaSession.

Méthode

Description

IDiaSession::get_loadAddress

Récupère l'adresse de charge du fichier exécutable qui correspond aux symboles dans ce magasin de symboles. C'est la même valeur passée à la méthode d' put_loadAddress .

IDiaSession::put_loadAddress

Définit l'adresse de charge du fichier exécutable qui correspond aux symboles dans ce magasin de symboles.

Notes

Il est important d'appeler cette méthode lorsque vous obtenez un objet d' IDiaSession et avant de commencer à utiliser l'objet.

IDiaSession::get_globalScope

Extrait 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 aux emplacements statiques.

IDiaSession::findChildren

Récupère tous les enfants d'un parent identificateur spécifié qui correspondent au nom et le type de symboles.

IDiaSession::findSymbolByAddr

Récupère un type spécifié de symboles qui contient, ou est le plus proche de, une adresse spécifiée.

IDiaSession::findSymbolByRVA

Récupère un type spécifié de symboles qui contient, ou est le plus proche de, une adresse virtuelle relative spécifiée (RVA).

IDiaSession::findSymbolByVA

Récupère un type spécifié de symboles qui contient, ou est le plus proche de, 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 identiques.

IDiaSession::symbolById

Récupère un symbole par son identificateur unique.

IDiaSession::findSymbolByRVAEx

Récupère un type spécifié de symboles qui contient, ou est le plus proche de, une adresse virtuelle et un offset connexes spécifiés.

IDiaSession::findSymbolByVAEx

Récupère un type spécifié de symboles qui contient, ou est le plus proche de, une adresse virtuelle et un offset spécifiés.

IDiaSession::findFile

Extrait un fichier source par le module et le nom.

IDiaSession::findFileById

Extrait un fichier source par l'identificateur de fichier source.

IDiaSession::findLines

Récupère les numéros de ligne dans un identificateur spécifié de module et de fichier source.

IDiaSession::findLinesByAddr

Récupère les lignes un module spécifié qui contiennent une adresse spécifiée.

IDiaSession::findLinesByRVA

Récupère les lignes un module spécifié qui contiennent une adresse virtuelle relative spécifiée.

IDiaSession::findLinesByVA

Recherche des informations de numéro de ligne pour les lignes contenues dans une plage d'adresse spécifiée.

IDiaSession::findLinesByLinenum

Récupère les lignes un module spécifié par le fichier source et le numéro de ligne.

IDiaSession::findInjectedSource

Extrait une source qui a été définie dans le magasin de symboles par des fournisseurs d'attribut ou d'autres composants du processus de compilation.

IDiaSession::getEnumDebugStreams

Extrait une séquence énumérée de débogage de flux de données.

IDiaSession::findInlineFramesByAddr

Extrait une énumération qui permet à un client pour itérer au sein de tous les frames intégrés sur une adresse donnée.

IDiaSession::findInlineFramesByRVA

Extrait une énumération qui permet à un client pour itérer au sein de tous les frames intégrés sur une adresse virtuelle relative spécifiée (RVA).

IDiaSession::findInlineFramesByVA

Extrait une énumération qui permet à un client pour itérer au sein de tous les frames intégrés sur une adresse virtuelle spécifiée (VA).

IDiaSession::findInlineeLines

Extrait une énumération qui permet à un client pour itérer au sein de les informations de numéro de ligne de toutes les fonctions qui sont inline, directement ou indirectement, par le symbole parent spécifié.

IDiaSession::findInlineeLinesByAddr

Extrait une énumération qui permet à un client pour itérer au sein de les informations de numéro de ligne de toutes les fonctions qui sont inline, directement ou indirectement, par le symbole parent spécifié et est contenue dans la marge d'adresse spécifiée.

IDiaSession::findInlineeLinesByRVA

Extrait une énumération qui permet à un client pour itérer au sein de les informations de numéro de ligne de toutes les fonctions qui sont inline, directement ou indirectement, par le symbole parent spécifié et est contenue dans l'adresse virtuelle relative spécifiée (RVA).

IDiaSession::findInlineLinesByVA

Extrait une énumération qui permet à un client pour itérer au sein de les informations de numéro de ligne de toutes les fonctions qui sont inline, directement ou indirectement, par le symbole parent spécifié et est contenue dans l'adresse virtuelle spécifiée (VA).

IDiaSession::findInlineeLinesByLinenum

Extrait une énumération qui permet à un client pour itérer au sein de les informations de numéro de ligne de toutes les fonctions qui sont inline, directement ou indirectement, dans le fichier source et le numéro de ligne spécifié.

IDiaSession::findInlineesByName

Extrait une énumération qui permet à un client pour itérer au sein de les informations de numéro de ligne de toutes les fonctions inline qui correspondent à un nom spécifié.

IDiaSession::findSymbolsForAcceleratorPointerTag

Retourne une énumération de symboles pour la variable à la valeur spécifiée de balises correspond à dans la fonction parente stub d'accélérateur.

IDiaSession::findSymbolsByRVAForAcceleratorPointerTag

Donné une valeur correspondante de balise, cette méthode retourne une énumération de symboles qui sont contenus dans une fonction parente spécifiée stub d'accélérateur à une adresse virtuelle relative spécifiée.

IDiaSession::findAcceleratorInlineesByName

Retourne une énumération les symboles pour les frames intégrés correspondant au nom de la fonction inline spécifié.

IDiaSession::findAcceleratorInlineesByLinenum

Retourne une énumération les symboles pour les frames intégrés qui correspondent à l'emplacement spécifié de la source.

Notes

Il est important d'appeler la méthode de IDiaSession::put_loadAddress après avoir créé l'objet d' IDiaSession )et la valeur passée à la méthode d' put_loadAddress doit être non nulle (pour toutes les propriétés de (VA) d'adresse virtuelle de symboles pour être accessible. L'adresse de chargement provient de la valeur que ce programme a chargé le fichier exécutable en cours de débogage. Par exemple, vous pouvez appeler la fonction GetModuleInformation Win32 pour récupérer l'adresse de charge du fichier exécutable, donnée un handle au fichier exécutable.

Exemple

Cet exemple montre comment obtenir l'interface d' IDiaSession dans le cadre d'une initialisation diamètre générale du Kit de développement logiciel.

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

Tâches

Interrogation du fichier .Pdb

Référence

Exe

IDiaAddressMap

IDiaDataSource

IDiaDataSource::openSession

IDiaSymbol::findChildren

Autres ressources

Interfaces (Kit de développement logiciel de Debug Interface Access)

Vue d'ensemble (Kit de développement logiciel de Debug Interface Access)