IDiaSectionContrib

Recupera i dati che descrivono un supporto della sezione, ovvero, un blocco di memoria contiguo contribuito all'immagine da un modulo.

IDiaSectionContrib : IUnknown

Metodi nell'ordine di Vtable

Nella tabella seguente sono elencati i metodi di IDiaSectionContrib.

Metodo

Descrizione

IDiaSectionContrib::get_compiland

Recupera un riferimento al simbolo del modulo che ha fornito in questa sezione.

IDiaSectionContrib::get_addressSection

Recupera la parte della sezione dell'indirizzo del supporto.

IDiaSectionContrib::get_addressOffset

Recupera la parte offset dell'indirizzo del supporto.

IDiaSectionContrib::get_relativeVirtualAddress

Recupera indirizzo (RVA) virtuale di immagine di supporto.

IDiaSectionContrib::get_virtualAddress

Recupera indirizzo (VA) virtuale di supporto.

IDiaSectionContrib::get_length

Recupera il numero di byte in una sezione.

IDiaSectionContrib::get_notPaged

Recupera un flag che indica se la sezione non può essere memoria insufficiente della riserva di paging.

IDiaSectionContrib::get_nopad

Recupera un flag che indica se la sezione non deve essere applicato il riempimento al limite seguente di memoria.

IDiaSectionContrib::get_code

recupera un flag che indica se la sezione contiene il codice eseguibile.

IDiaSectionContrib::get_code16bit

Recupera un flag che indica se la sezione contiene il codice a 16 bit.

IDiaSectionContrib::get_initializedData

Recupera un flag che indica se la sezione contiene dati inizializzati.

IDiaSectionContrib::get_uninitializedData

Recupera un flag che indica se la sezione contiene i dati non inizializzate.

IDiaSectionContrib::get_informational

Recupera un flag che indica se una sezione contiene commenti o le informazioni simili.

IDiaSectionContrib::get_remove

Recupera un flag che indica se la sezione viene eliminata prima che venga prodotto a parte dell'immagine in memoria.

IDiaSectionContrib::get_comdat

recupera un flag che indica se la sezione è un record di COMDAT.

IDiaSectionContrib::get_discardable

recupera un flag che indica se la sezione può essere rimossa.

IDiaSectionContrib::get_notCached

Recupera un flag che indica se la sezione non può essere memorizzata nella cache.

IDiaSectionContrib::get_share

Recupera un flag che indica se la sezione può essere condivisa in memoria.

IDiaSectionContrib::get_execute

recupera un flag che indica se la sezione è eseguibile come codice.

IDiaSectionContrib::get_read

recupera un flag che indica se la sezione può essere letta.

IDiaSectionContrib::get_write

Recupera un flag che indica se la sezione può essere scritta.

IDiaSectionContrib::get_dataCrc

Recupera il controllo su (CRC) ridondanza ciclica dei dati nella sezione.

IDiaSectionContrib::get_relocationsCrc

Recupera il CRC delle informazioni di rilocazione per la sezione.

IDiaLineNumber::get_compilandId

Recupera l'identificatore del modulo per la sezione.

Note

Note per i chiamanti

Questa interfaccia è ottenuto chiamando IDiaEnumSectionContribs::Item e IDiaEnumSectionContribs::Next metodi.vedere IDiaEnumSectionContribs interfaccia per un esempio di verifica IDiaSectionContrib interfaccia.

Esempio

questa funzione mostra l'indirizzo di ogni sezione con tutti i simboli associati.vedere IDiaEnumSectionContribs interfaccia per vedere come IDiaSectionContrib l'interfaccia viene ottenuta.

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" );
            }
        }
    }
}

Requisiti

intestazione: Dia2.h

raccolta: diaguids.lib

DLL: msdia80.dll

Vedere anche

Riferimenti

IDiaEnumSectionContribs

IDiaEnumSectionContribs::Item

IDiaEnumSectionContribs::Next

Altre risorse

Interfacce (Debug Interface Access SDK)