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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour