IDiaSectionContrib
Recupera dados de descrevendo uma contribuição de seção, ou seja, um bloco contíguo de memória contribuíram para a imagem por um compiland.
IDiaSectionContrib : IUnknown
Métodos na ordem de Vtable
A tabela a seguir mostra os métodos de IDiaSectionContrib.
Método |
Descrição |
---|---|
Recupera uma referência para o símbolo de compiland que contribuíram nesta seção. |
|
Recupera a parte da seção de endereço da contribuição. |
|
Recupera a compensação parte do endereço da contribuição. |
|
Recupera o imagem endereço virtual relativo (RVA) de contribuição. |
|
Recupera o endereço virtual (VA) de contribuição. |
|
Recupera o número de bytes em uma seção. |
|
Recupera um sinalizador que indica se a seção não pode ser paginada memória insuficiente. |
|
Recupera um sinalizador que indica se a seção não deve ser preenchida para o próximo limite de memória. |
|
Recupera um sinalizador que indica se a seção contém código executável. |
|
Recupera um sinalizador que indica se a seção contém código de 16 bits. |
|
Recupera um sinalizador que indica se a seção contém dados inicializados. |
|
Recupera um sinalizador que indica se a seção contém dados não inicializados. |
|
Recupera um sinalizador que indica se uma seção contém comentários ou informações semelhantes. |
|
Recupera um sinalizador que indica se a seção deve é removida antes que ele é parte da imagem na memória. |
|
Recupera um sinalizador que indica se a seção é um registro COMDAT. |
|
Recupera um sinalizador que indica se a seção pode ser descartada. |
|
Recupera um sinalizador que indica se a seção não pode ser armazenado em cache. |
|
Recupera um sinalizador que indica se a seção pode ser compartilhada na memória. |
|
Recupera um sinalizador que indica se a seção é executável como código. |
|
Recupera um sinalizador que indica se a seção pode ser lido. |
|
Recupera um sinalizador que indica se a seção pode ser gravada. |
|
Recupera a verificação de redundância cíclica (CRC) dos dados na seção. |
|
Recupera o CRC as informações de realocação da seção. |
|
Recupera o identificador de compiland para a seção. |
Comentários
Observações para chamadores
Essa interface é obtida chamando o IDiaEnumSectionContribs::Item e IDiaEnumSectionContribs::Next métodos. Consulte o IDiaEnumSectionContribs interface para obter um exemplo de como obter o IDiaSectionContrib interface.
Exemplo
Esta função mostra o endereço de cada seção juntamente com quaisquer símbolos associados. Consulte o IDiaEnumSectionContribs interface para ver como o IDiaSectionContrib interface é obtida.
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" );
}
}
}
}
Requisitos
Cabeçalho: Dia2.h
Biblioteca: diaguids.lib
DLL: msdia80.dll