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