IDiaSymbol
Décrit les propriétés d'une instance du symbole.
IDiaSymbol : IUnknown
Méthodes dans l'ordre alphabétique
Le tableau suivant répertorie les méthodes d' IDiaSymbol.
Notes
Les symboles retournent des données significatives pour que certaines de ces méthodes, selon le type de symboles.Si une méthode retourne S_OK, cette méthode est retournée des données significatives.
Méthode |
Description |
---|---|
Récupère tous les enfants du symbole. |
|
Récupère les enfants du symbole. Cette méthode est la version étendue d' IDiaSymbol::findChildren. |
|
Récupère les enfants du symbole valides à une adresse spécifiée. |
|
Récupère les enfants du symbole valides à une adresse virtuelle relative spécifiée (RVA). |
|
Récupère les enfants du symbole valides à une adresse virtuelle spécifiée. |
|
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. |
|
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). |
|
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). |
|
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 ce symbole. |
|
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 ce symbole dans la plage d'adresse spécifiée. |
|
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 ce symbole dans l'adresse virtuelle relative spécifiée (RVA). |
|
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 ce symbole dans l'adresse virtuelle spécifiée (VA). |
|
Donné une valeur correspondante de balise, cette méthode retourne une énumération de symboles qui sont contenus dans cette fonction stub à une adresse virtuelle relative spécifiée. |
|
Retourne le nombre de balises de pointeur d'accélérateur dans la fonction du stub C++ ampère. |
|
Retourne toutes les valeurs d'indicateur de pointeur d'accélérateur qui correspondent à la fonction du stub d'accélérateur C++ ampère. |
|
Récupère le modificateur d'accès d'un membre de classe. |
|
Extrait la partie excentrée d'un emplacement d'adresse. |
|
Extrait la partie de la section d'un emplacement d'adresse. |
|
Extrait une balise indiquant si un autre symbole référence cette adresse. |
|
Extrait la valeur d'âge d'une base de données du programme. |
|
Récupère l'identificateur de symboles du type d'index de tableau. |
|
Récupère l'identificateur de type d'index de tableau du symbole. |
|
Récupère le numéro de version principale principal. |
|
Récupère le numéro de version secondaire principal. |
|
Récupère le numéro de build principal. |
|
Récupère le décalage de base de données. |
|
Extrait l'emplacement de base de données. |
|
Récupère le symbole dont le pointeur est basé. |
|
Extrait l'ID de symbole dont le pointeur est basé. |
|
Extrait l'indicateur de type d'un type simple. |
|
Extrait la position de bits d'un emplacement. |
|
Récupère un type prédéfini de type de HLSL. |
|
Retourne un indicateur de la convention d'appel d'une méthode. |
|
Extrait une référence au parent de classe du symbole. |
|
Récupère l'identificateur parent de classe du symbole. |
|
Extrait une balise qui indique si le symbole fait référence à une adresse. |
|
Extrait une balise qui indique si le symbole a été généré par le compilateur. |
|
Extrait le nom du compilateur utilisé pour créer compiland. |
|
Extrait une balise qui indique si le type de données défini par l'utilisateur possède un constructeur. |
|
Récupère le symbole contenant de ce symbole. |
|
Extrait une balise qui indique si le type de données défini par l'utilisateur est fixe. |
|
Récupère le nombre d'éléments dans une liste ou un tableau. |
|
Récupère le nombre de plages d'adresses valides associées au symbole local. |
|
Extrait une balise qui indique si la fonction utilise une convention d'appel personnalisée. |
|
Récupère les octets de données d'un symbole OEM. |
|
Extrait la classification variable d'un symbole de données. |
|
Extrait la balise décrivant modifier & continuer des fonctionnalités du programme ou de l'unité compilé. |
|
Extrait une balise qui indique si la fonction utilise davantage un de retour. |
|
Récupère le numéro de version principale frontal. |
|
Récupère le numéro de version secondaire frontal. |
|
Récupère le numéro de build frontal. |
|
Extrait une balise qui indique si le symbole public fait référence à une fonction. |
|
Récupère le GUID du symbole. |
|
Extrait une balise qui indique si la fonction contient un appel à alloca. |
|
Extrait une balise qui indique si le type de données défini par l'utilisateur a des opérateurs d'assignation définis. |
|
Extrait une balise qui indique si le type de données défini par l'utilisateur a des opérateurs de conversion définis. |
|
Extrait une balise qui indique si le module contient toutes les informations de débogage. |
|
Extrait une balise qui indique si la fonction a le gestionnaire d'exceptions C/C++ ++-style. |
|
Extrait une balise qui indique si la fonction a un gestionnaire d'exceptions asynchrone. |
|
Extrait une balise qui indique si la fonction a un assembly inline. |
|
Extrait une balise qui indique si la fonction contient une commande de longjmp (une partie de gestion des exceptions de style C). |
|
Extrait une balise qui indique si le module contient du code managé. |
|
Extrait une balise qui indique si le type de données défini par l'utilisateur est imbriqué les définitions de type. |
|
Extrait une balise qui indique si la fonction ou le module a des vérifications de sécurité compilées dans (via le commutateur de compilation de /GS (Vérification de la sécurité de la mémoire tampon) ). |
|
Extrait une balise qui indique si la fonction a la gestion structurée des exceptions de style Win32. |
|
Extrait une balise qui indique si la fonction contient une commande de setjmp. |
|
Extrait une balise qui indique si le type de données défini par l'utilisateur est une classe de base virtuelle indirecte. |
|
Extrait une balise qui indique si la fonction était marquée avec l'attribut intégré. |
|
Extrait une balise qui indique si la fonction a un retour de l'instruction d'interruption. |
|
Extrait une balise qui indique si la fonction est une fonction virtuelle de classe de base. |
|
Extrait une balise qui indique si le symbole correspond à une variable locale partagée de groupe dans le code compilé pour l'accélérateur C++ ampère. |
|
Extrait une balise qui indique si le symbole correspond au symbole d'intervalle de définition pour le composant de balise d'une variable pointeur dans le code compilé pour l'accélérateur C++ ampère. Le symbole d'intervalle de définition est l'emplacement d'une variable pour une plage d'adresses. |
|
Indique si le symbole correspond à un symbole de niveau supérieur de fonction pour un shader compilé pour un accélérateur qui correspond à un appel d' parallel_for_each . |
|
Extrait une balise qui indique si les données font partie d'un agrégat de nombreux symboles. |
|
Extrait une balise indiquant si le fichier de symboles contient des C. |
|
Extrait une balise qui indique si le module a été converti du intermediate langage runtime (CIL) en code natif. |
|
Extrait une balise qui indique si les éléments d'un type de données défini par l'utilisateur sont alignés à une limite spécifique. |
|
Spécifie si ce symbole représente des données shadères de niveau supérieur de (HLSL) de langage. |
|
Extrait une balise qui indique si le module a été compilé avec le commutateur de compilation de /hotpatch (Créer une image corrigeable en mémoire) . |
|
Extrait une balise qui indique si le module managé a été attaché avec le LTCG de l'éditeur de liens. |
|
Spécifie si le tableau est principale de ligne. |
|
Extrait une balise qui indique si le module managé est Une. .netmodule (qui contiennent uniquement des métadonnées). |
|
Spécifie si les points du pointeur d' this à une donnée membre avec l'héritage multiple. |
|
Extrait une balise qui indique si la fonction a l'attribut de naked (C++) . |
|
Spécifie si la variable est optimisée approfondie. |
|
Spécifie si le pointeur d' this est basé sur une valeur du symbole. |
|
Spécifie si ce symbole est un pointeur vers un membre. |
|
Spécifie si ce symbole est un pointeur vers une fonction membre. |
|
Spécifie si la variable distribue une valeur de retour. |
|
Spécifie si le module est compilé avec l'option /SDL. |
|
Spécifie si les points du pointeur d' this à une donnée membre à héritage unique. |
|
Extrait une balise qui indique si les données ont été coupées en agrégat de symboles séparés. |
|
Extrait une balise qui indique si une fonction ou une couche de thunk est statique. |
|
Extrait une balise qui indique si les symboles privés ont été éliminés du fichier de symboles. |
|
Spécifie si les points du pointeur d' this à une donnée membre avec l'héritage virtuel. |
|
Récupère le langage de la source. |
|
Récupère le nombre d'octets de mémoire utilisée par l'objet représenté par ce symbole. |
|
Extrait une référence au parent lexicale du symbole. |
|
Récupère l'identificateur parent lexicale du symbole. |
|
Extrait le nom de fichier de la bibliothèque ou du fichier objet dont l'objet a été chargé. |
|
Retourne la longueur de la plage d'adresses dans laquelle le symbole local est valide. |
|
Retourne la partie de la section de la plage d'adresses de début dans laquelle le symbole local est valide. |
|
Retourne la partie excentrée de la plage d'adresses de début dans laquelle le symbole local est valide. |
|
Retourne le début de la plage d'adresses dans laquelle le symbole local est valide. |
|
Récupère le type d'emplacement d'un symbole de données. |
|
Extrait la limite inférieure d'une dimension de tableau FORTRAN. |
|
Récupère l'identificateur de symboles de la limite inférieure d'une dimension de tableau FORTRAN. |
|
Récupère le type de l'unité centrale cible. |
|
Extrait une balise qu'indiquant si le symbole désigne le code managé. |
|
Récupère le type d'espace mémoire. |
|
Extrait une balise qui indique si le symbole désigne le code de Microsoft Intermediate langage (MSIL). |
|
Extrait le nom du symbole. |
|
Extrait une balise qui indique si le type de données défini par l'utilisateur est imbriqué. |
|
Extrait une balise qui indique si la fonction est marquée avec l'attribut de noinline . |
|
Extrait une balise qui indique si la fonction a été déclarée avec l'attribut de noreturn . |
|
Extrait une balise qui indique si aucun classement de pile ne peut être effectuée dans le cadre de le contrôle de mémoire tampon de la pile. |
|
Extrait une balise qui indique si la fonction ou l'étiquette n'est jamais atteinte. |
|
Retourne le nombre de balises de pointeur d'accélérateur dans la fonction du stub C++ ampère. |
|
Récupère le nombre de modificateurs appliqués au type d'origine. |
|
Récupère le nombre d'index de registre. |
|
Récupère le nombre de lignes du tableau. |
|
Récupère le nombre de colonnes du tableau. |
|
Extrait le nom de fichier de l'objet. |
|
Récupère le type du pointeur d'objet pour une méthode de classe. |
|
Extrait la valeur d' oemId du symbole. |
|
Extrait la valeur d' oemSymbolId du symbole. |
|
Récupère le décalage de l'emplacement du symbole. |
|
Extrait une balise qui indique si la fonction ou l'étiquette contient le code ainsi que des informations de débogage optimisés. |
|
Extrait une balise qui indique si le type de données défini par l'utilisateur surchargé des opérateurs. |
|
Extrait une balise qui indique si le type de données défini par l'utilisateur est compressé. |
|
Récupère le type de plateforme pour laquelle le programme ou le module a été compilé. |
|
Extrait une balise qu'indiquant si la fonction est virtuelle pure. |
|
Récupère le rang d'un tableau multidimensionnel FORTRAN. |
|
Extrait une balise indiquant si un type pointeur est une référence. |
|
Extrait l'indicateur de registre de l'emplacement. |
|
Récupère le type de registre. |
|
Récupère l'adresse virtuelle relative (RVA) de l'emplacement. |
|
Spécifie si le pointeur d' this est signalé comme restreint. |
|
Extrait l'emplacement d'échantillonneur. |
|
Extrait une balise qui indique si le type de données défini par l'utilisateur apparaît dans une portée lexicale nonglobal. |
|
Récupère la valeur de la signature du symbole. |
|
Extrait la taille d'un membre d'un type défini par l'utilisateur. |
|
Récupère le nombre de emplacement de l'emplacement. |
|
Extrait le nom du fichier source. |
|
Extrait le fichier source et le numéro de ligne qui indiquent où un type défini par l'utilisateur spécifié est défini. |
|
Extrait la largeur de numérisation de tableau ou de tableau strided. |
|
Extrait sous le type. |
|
Récupère le type sous ID |
|
Extrait le nom du fichier à partir duquel les symboles ont été chargés. |
|
Récupère le seul identificateur de symboles. |
|
Récupère le type classifieur de symboles. |
|
Extrait la section excentrée d'une cible de conversion de code. |
|
Récupère l'adresse virtuelle relative (RVA) d'une cible de conversion de code. |
|
Extrait la section d'adresse d'une cible de conversion de code. |
|
Récupère l'adresse virtuelle (VA) d'une cible de conversion de code. |
|
Extrait l'emplacement de texture. |
|
Récupère le régleur logique d' this pour la méthode. |
|
Récupère le type de conversion de code d'une fonction. |
|
Extrait l'horodatage du fichier exécutable sous-jacent. |
|
Récupère le jeton de métadonnées d'une fonction ou une variable managée. |
|
Extrait une référence à la signature de la fonction. |
|
Récupère l'identificateur de type du symbole. |
|
Récupère un tableau de type valeurs de compilateur particulier pour ce symbole. |
|
Récupère un tableau de valeurs d'ID de type de compilateur particulier pour ce symbole. |
|
Extrait l'emplacement d'UAV. |
|
Récupère le dossier fichiers divers un type défini par l'utilisateur (UDT). |
|
Extrait une balise qui indique si le type de données défini par l'utilisateur est aligné. |
|
Extrait le nom non décoré du C++ décoré, ou la liaison, nom. |
|
Extension de la méthode d' get_undecoratedName qui récupère le nom non décoré selon la valeur d'un champ d'extension. |
|
Récupère l'ID du type (non modifié) d'origine. |
|
Extrait la limite supérieure d'une dimension de tableau FORTRAN. |
|
Récupère l'identificateur de symboles de la limite supérieure d'une dimension de tableau FORTRAN. |
|
Extrait la valeur d'une constante. |
|
Extrait une balise qui indique si la fonction est virtuelle. |
|
Récupère l'adresse virtuelle (VA) de l'emplacement. |
|
Extrait une balise qui indique si le type de données défini par l'utilisateur est une classe de base virtuelle. |
|
Récupère l'index à la table de décalage de base virtuel. |
|
Récupère l'offset dans la table de fonctions virtuelles d'une fonction virtuelle. |
|
Extrait l'offset du pointeur de base virtuel. |
|
Récupère le type d'un pointeur virtuel de table de base. |
|
Récupère l'interface de symboles du type du tableau virtuel pour un type défini par l'utilisateur. |
|
Récupère l'identificateur de formulaire virtuel de table de symboles. |
|
Extrait une balise qui indique si le type de données défini par l'utilisateur est volatile. |
Notes
Remarques relatives aux appelants
Obtenez cette interface en appelant l'une des méthodes suivantes :
Exemple
Cet exemple indique comment afficher les variables locales pour une fonction à une adresse virtuelle relative donnée. Il indique également comment les symboles de types sont reliés les uns aux autres.
Notes
CDiaBSTR est une classe qui encapsule BSTR et automatiquement des handles libérant la chaîne lorsque l'instanciation hors de portée.
void DumpLocalVars( DWORD rva, IDiaSession *pSession )
{
CComPtr< IDiaSymbol > pBlock;
if ( FAILED( psession->findSymbolByRVA( rva, SymTagBlock, &pBlock ) ) )
{
Fatal( "Failed to find symbols by RVA" );
}
CComPtr< IDiaSymbol > pscope;
for ( ; pBlock != NULL; )
{
CComPtr< IDiaEnumSymbols > pEnum;
// local data search
if ( FAILED( pBlock->findChildren( SymTagNull, NULL, nsNone, &pEnum ) ) )
{
Fatal( "Local scope findChildren failed" );
}
CComPtr< IDiaSymbol > pSymbol;
DWORD tag;
DWORD celt;
while ( pEnum != NULL &&
SUCCEEDED( pEnum->Next( 1, &pSymbol, &celt ) ) &&
celt == 1)
{
pSymbol->get_symTag( &tag );
if ( tag == SymTagData )
{
CDiaBSTR name;
DWORD kind;
pSymbol->get_name( &name );
pSymbol->get_dataKind( &kind );
if ( name != NULL )
wprintf_s( L"\t%s (%s)\n", name, szDataKinds[ kind ] );
}
else if ( tag == SymTagAnnotation )
{
CComPtr< IDiaEnumSymbols > pValues;
// local data search
wprintf_s( L"\tAnnotation:\n" );
if ( FAILED( pSymbol->findChildren( SymTagNull, NULL, nsNone, &pValues ) ) )
Fatal( "Annotation findChildren failed" );
pSymbol = NULL;
while ( pValues != NULL &&
SUCCEEDED( pValues->Next( 1, &pSymbol, &celt ) ) &&
celt == 1 )
{
CComVariant value;
if ( pSymbol->get_value( &value ) != S_OK )
Fatal( "No value for annotation data." );
wprintf_s( L"\t\t%ws\n", value.bstrVal );
pSymbol = NULL;
}
}
pSymbol = NULL;
}
pBlock->get_symTag( &tag );
if ( tag == SymTagFunction ) // stop when at function scope
break;
// move to lexical parent
CComPtr< IDiaSymbol > pParent;
if ( SUCCEEDED( pBlock->get_lexicalParent( &pParent ) )
&& pParent != NULL ) {
pBlock = pParent;
}
else
{
Fatal( "Finding lexical parent failed." );
}
};
}
Configuration requise
Header: Dia2.h
Bibliothèque : diaguids.lib
DLL : msdia80.dll
Voir aussi
Référence
Hiérarchie de classes des types de symboles
Autres ressources
Interfaces (Kit de développement logiciel de Debug Interface Access)