Поделиться через


IDiaSectionContrib

Извлекает данные, описывающие вклад раздела, т е непрерывный блок памяти в способствованный образу compiland.

IDiaSectionContrib : IUnknown

Методы в том порядке Vtable

В следующей таблице показаны методы IDiaSectionContrib.

Метод

Описание

IDiaSectionContrib::get_compiland

Извлекает ссылку на символ compiland, способствовал в этом разделе.

IDiaSectionContrib::get_addressSection

Извлекает часть раздела адреса вклада.

IDiaSectionContrib::get_addressOffset

Извлекает часть смещения адреса вклада.

IDiaSectionContrib::get_relativeVirtualAddress

Получает относительный виртуальный адрес образа (RVA) вклада.

IDiaSectionContrib::get_virtualAddress

Получает виртуальный адрес (VA вклада.)

IDiaSectionContrib::get_length

Извлекает число байтов в разделе.

IDiaSectionContrib::get_notPaged

Извлекает пометить, указывающее, является ли раздел нельзя вызвать из памяти.

IDiaSectionContrib::get_nopad

Извлекает пометить указывающее, должен ли раздел не быть проложен к следующей границе памяти.

IDiaSectionContrib::get_code

Извлекает пометить, указывающее, содержит ли раздел исполняемый код.

IDiaSectionContrib::get_code16bit

Извлекает пометить, указывающее, содержит ли раздел 16-разрядный код.

IDiaSectionContrib::get_initializedData

Извлекает пометить, указывающее, содержит ли раздел инициализированные данные.

IDiaSectionContrib::get_uninitializedData

Извлекает пометить, указывающее, содержит ли раздел неинициализированные данные.

IDiaSectionContrib::get_informational

Извлекает пометить указывающее, содержит ли раздел комментарии или аналогичное сведения.

IDiaSectionContrib::get_remove

Извлекает пометить, указывающее, удален ли раздел, прежде чем он становится частью образа в памяти.

IDiaSectionContrib::get_comdat

Извлекает пометить раздела COMDAT, указывающее, является ли запись.

IDiaSectionContrib::get_discardable

Извлекает пометить, указывающее, может ли секция может быть отменено.

IDiaSectionContrib::get_notCached

Извлекает пометить, указывающее, может ли секция быть кэшироваться.

IDiaSectionContrib::get_share

Извлекает пометить, указывающее, является ли раздел может использоваться в памяти.

IDiaSectionContrib::get_execute

Извлекает пометить, указывающее, является ли раздел исполнительн как код.

IDiaSectionContrib::get_read

Извлекает пометить, указывающее, является ли раздел можно считать.

IDiaSectionContrib::get_write

Извлекает пометить, указывающее, может ли секция может записать.

IDiaSectionContrib::get_dataCrc

Извлекает циклическую проверку избыточности (CRC) данных в шаге.

IDiaSectionContrib::get_relocationsCrc

Извлекает CRC данных перемещения для секции.

IDiaLineNumber::get_compilandId

Извлекает идентификатор compiland для секции.

Заметки

Замечания для вызывающих объектов

Этот интерфейс полученного вызовом метода IDiaEnumSectionContribs::Item и IDiaEnumSectionContribs::Next методы. См. IDiaEnumSectionContribs интерфейс пример получения IDiaSectionContrib интерфейс.

Пример

Эта функция отображает адрес каждого раздела вместе с всеми связанными символами. См. IDiaEnumSectionContribs интерфейс для просмотра как IDiaSectionContrib интерфейс получен.

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

Требования

Заголовок: Dia2.h

Библиотеки: diaguids.lib

Библиотеки DLL: msdia80.dll

См. также

Ссылки

IDiaEnumSectionContribs

IDiaEnumSectionContribs::Item

IDiaEnumSectionContribs::Next

Другие ресурсы

Интерфейсы (SDK для доступа к интерфейсу отладки)