Partager via


IDiaSectionContrib

Récupère les données qui décrit une contribution de section, c. autrement dit., un bloc de mémoire contigu fourni à l'image selon un module (compiland).

IDiaSectionContrib : IUnknown

méthodes en commande de Vtable

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

Méthode

Description

IDiaSectionContrib::get_compiland

Extrait une référence au symbole de module qui a fourni cette section.

IDiaSectionContrib::get_addressSection

Extrait la partie de la section de l'adresse de la contribution.

IDiaSectionContrib::get_addressOffset

Extrait la partie d'offset de l'adresse de la contribution.

IDiaSectionContrib::get_relativeVirtualAddress

Récupère l'adresse virtuelle relative de l'image (RVA) de la contribution.

IDiaSectionContrib::get_virtualAddress

Récupère l'adresse (VA) virtuelle de la contribution.

IDiaSectionContrib::get_length

Récupère le nombre d'octets dans une section.

IDiaSectionContrib::get_notPaged

extrait une balise qui indique si la section ne peut pas être mémoire insuffisante paginé.

IDiaSectionContrib::get_nopad

Extrait une balise qui indique si la section ne doit pas être effectuée à la limite suivante de mémoire.

IDiaSectionContrib::get_code

Extrait une balise qui indique si la section contient le code exécutable.

IDiaSectionContrib::get_code16bit

Extrait une balise qui indique si la section contient le code 16 bits.

IDiaSectionContrib::get_initializedData

extrait une balise qui indique si la section contient des données initialisées.

IDiaSectionContrib::get_uninitializedData

extrait une balise qui indique si la section contient des données non initialisées.

IDiaSectionContrib::get_informational

Extrait une balise indiquant si une section contient les commentaires ou les informations similaires.

IDiaSectionContrib::get_remove

Extrait une balise qui indique si la section est supprimée pour que ce soit effectué à une partie de l'image en mémoire.

IDiaSectionContrib::get_comdat

Extrait une balise qui indique si la section est un enregistrement COMDAT.

IDiaSectionContrib::get_discardable

extrait une balise qui indique si la section peut être ignorée.

IDiaSectionContrib::get_notCached

extrait une balise qui indique si la section ne peut pas être mise en cache.

IDiaSectionContrib::get_share

extrait une balise qui indique si la section peut être partagée dans la mémoire.

IDiaSectionContrib::get_execute

Extrait une balise qui indique si la section est exécutable comme du code.

IDiaSectionContrib::get_read

Extrait une balise qui indique si la section peuvent être lues.

IDiaSectionContrib::get_write

extrait une balise qui indique si la section peut être écrite.

IDiaSectionContrib::get_dataCrc

Récupère le contrôle de (CRC) redondance cyclique des données dans la section.

IDiaSectionContrib::get_relocationsCrc

Extrait CRC des informations de réadressage de la section.

IDiaLineNumber::get_compilandId

Extrait l'identificateur de module (compiland) de la section.

Notes

Remarques pour les appelants

cette interface est obtenue en appelant les méthodes d' IDiaEnumSectionContribs::Item et d' IDiaEnumSectionContribs::Next . Consultez l'interface d' IDiaEnumSectionContribs pour obtenir un exemple d'obtenir IDiaSectionContrib pour relier.

Exemple

Cette fonction illustre l'adresse de chaque section ainsi que tous les symboles associés. Consultez l'interface d' IDiaEnumSectionContribs pour voir comment l'interface d' IDiaSectionContrib est obtenue.

void PrintSectionContrib(IDiaSectionContrib* pSecContrib, IDiaSession* pSession)
{
    if (pSecContrib != NULL && pSession != NULL)
    {
        DWORD rva;
        if ( pSecContrib->get_relativeVirtualAddress( &rva ) == S_OK )
        {
            printf( "\taddr: 0x%.8X", rva );
            pSecContrib = NULL;
            CComPtr<IDiaSymbol> pSym;
            if ( psession->findSymbolByRVA( rva, SymTagNull, &pSym ) == S_OK )
            {
                CDiaBSTR name;
                DWORD    tag;
                pSym->get_symTag( &tag );
                pSym->get_name( &name );
                printf( "     symbol: %ws (%ws)\n",
                        name != NULL ? name : L"",
                        szTags[ tag ] );
            }
            else
            {
                printf( "<no symbol found?>\n" );
            }
        }
        else
        {
            DWORD isect;
            DWORD offset;
            pSecContrib->get_addressSection( &isect );
            pSecContrib->get_addressOffset( &offset );
            printf( "\taddr: 0x%.4X:0x%.8X", isect, offset );
            pSecContrib = NULL;
            CComPtr<IDiaSymbol> pSym;
            if ( SUCCEEDED( psession->findSymbolByAddr(
                                              isect,
                                              offset,
                                              SymTagNull,
                                              &pSym )
                          )
               )
            {
                CDiaBSTR name;
                DWORD    tag;
                pSym->get_symTag( &tag );
                pSym->get_name( &name );
                printf( "     symbol: %ws (%ws)\n",
                    name != NULL ? name : L"",
                    szTags[ tag ] );
            }
            else
            {
                printf( "<no symbol found?>\n" );
            }
        }
    }
}

Configuration requise

en-tête : Dia2.h

bibliothèque : diaguids.lib

DLL : msdia80.dll

Voir aussi

Référence

IDiaEnumSectionContribs

IDiaEnumSectionContribs::Item

IDiaEnumSectionContribs::Next

Autres ressources

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