IDiaSectionContrib
Načte data popisující příspěvek oddílu, tj. souvislý blok paměti, který k obrázku přispěl compiland.
Syntaxe
IDiaSectionContrib : IUnknown
Metody v pořadí Vtable
Následující tabulka ukazuje metody IDiaSectionContrib
.
metoda | Popis |
---|---|
IDiaSectionContrib::get_compiland | Načte odkaz na symbol compilandu, který přispěl v této části. |
IDiaSectionContrib::get_addressSection | Načte část oddílu adresy příspěvku. |
IDiaSectionContrib::get_addressOffset | Načte část posunu adresy příspěvku. |
IDiaSectionContrib::get_relativeVirtualAddress | Načte relativní virtuální adresu (RVA) obrázku příspěvku. |
IDiaSectionContrib::get_virtualAddress | Načte virtuální adresu (VA) příspěvku. |
IDiaSectionContrib::get_length | Načte počet bajtů v oddílu. |
IDiaSectionContrib::get_notPaged | Načte příznak, který označuje, jestli oddíl nemůže být stránkován z paměti. |
IDiaSectionContrib::get_nopad | Načte příznak označující, jestli se oddíl nemá vycpávat na další hranici paměti. |
IDiaSectionContrib::get_code | Načte příznak, který označuje, jestli oddíl obsahuje spustitelný kód. |
IDiaSectionContrib::get_code16bit | Načte příznak, který označuje, jestli oddíl obsahuje 16bitový kód. |
IDiaSectionContrib::get_initializedData | Načte příznak, který označuje, jestli oddíl obsahuje inicializovaná data. |
IDiaSectionContrib::get_uninitializedData | Načte příznak, který označuje, jestli oddíl obsahuje neinicializovaná data. |
IDiaSectionContrib::get_informational | Načte příznak označující, jestli oddíl obsahuje komentáře nebo podobné informace. |
IDiaSectionContrib::get_remove | Načte příznak, který označuje, jestli je oddíl odebrán před tím, než je součástí image v paměti. |
IDiaSectionContrib::get_comdat | Načte příznak, který označuje, jestli je oddíl záznamem COMDAT. |
IDiaSectionContrib::get_discardable | Načte příznak, který označuje, jestli je možné oddíl zahodit. |
IDiaSectionContrib::get_notCached | Načte příznak, který označuje, jestli oddíl nelze uložit do mezipaměti. |
IDiaSectionContrib::get_share | Načte příznak, který označuje, jestli je možné oddíl sdílet v paměti. |
IDiaSectionContrib::get_execute | Načte příznak, který označuje, jestli je oddíl spustitelný jako kód. |
IDiaSectionContrib::get_read | Načte příznak, který označuje, jestli je možné oddíl přečíst. |
IDiaSectionContrib::get_write | Načte příznak, který označuje, jestli je možné oddíl zapsat. |
IDiaSectionContrib::get_dataCrc | Načte cyklickou kontrolu redundance (CRC) dat v oddílu. |
IDiaSectionContrib::get_relocationsCrc | Načte CRC informace o přemístění oddílu. |
IDiaLineNumber::get_compilandId | Načte identifikátor compilandu pro oddíl. |
Poznámky
Poznámky pro volající
Toto rozhraní je získáno voláním IDiaEnumSectionContribs::Item a IDiaEnumSectionContribs::Next metody. Příklad získání IDiaSectionContrib
rozhraní najdete v rozhraní IDiaEnumSectionContribs.
Příklad
Tato funkce zobrazuje adresu každého oddílu spolu se všemi přidruženými symboly. Podívejte se na IDiaEnumSectionContribs rozhraní, abyste viděli, jak IDiaSectionContrib
se rozhraní získá.
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" );
}
}
}
}
Požadavky
Hlavička: Dia2.h
Knihovna: diaguids.lib
DLL: msdia80.dll