IDiaSectionContrib
Pobiera dane opisujące współtworzenie sekcji, czyli ciągły blok pamięci, który przyczynił się do obrazu przez compiland.
Składnia
IDiaSectionContrib : IUnknown
Metody w tabeli Vtable Order
W poniższej tabeli przedstawiono metody .IDiaSectionContrib
Metoda | opis |
---|---|
IDiaSectionContrib::get_compiland | Pobiera odwołanie do symbolu compiland, który przyczynił się do tej sekcji. |
IDiaSectionContrib::get_addressSection | Pobiera część sekcji adresu współtworzenia. |
IDiaSectionContrib::get_addressOffset | Pobiera część przesunięcia adresu współtworzenia. |
IDiaSectionContrib::get_relativeVirtualAddress | Pobiera względny adres wirtualny obrazu (RVA) udziału. |
IDiaSectionContrib::get_virtualAddress | Pobiera adres wirtualny (VA) udziału. |
IDiaSectionContrib::get_length | Pobiera liczbę bajtów w sekcji. |
IDiaSectionContrib::get_notPaged | Pobiera flagę wskazującą, czy nie można odstronicować sekcji z pamięci. |
IDiaSectionContrib::get_nopad | Pobiera flagę wskazującą, czy sekcja nie powinna być dopełniona do następnej granicy pamięci. |
IDiaSectionContrib::get_code | Pobiera flagę wskazującą, czy sekcja zawiera kod wykonywalny. |
IDiaSectionContrib::get_code16bit | Pobiera flagę wskazującą, czy sekcja zawiera 16-bitowy kod. |
IDiaSectionContrib::get_initializedData | Pobiera flagę wskazującą, czy sekcja zawiera zainicjowane dane. |
IDiaSectionContrib::get_uninitializedData | Pobiera flagę wskazującą, czy sekcja zawiera niezainicjowane dane. |
IDiaSectionContrib::get_informational | Pobiera flagę wskazującą, czy sekcja zawiera komentarze, czy podobne informacje. |
IDiaSectionContrib::get_remove | Pobiera flagę wskazującą, czy sekcja została usunięta, zanim zostanie wykonana jako część obrazu w pamięci. |
IDiaSectionContrib::get_comdat | Pobiera flagę wskazującą, czy sekcja jest rekordem COMDAT. |
IDiaSectionContrib::get_discardable | Pobiera flagę wskazującą, czy sekcja może zostać odrzucona. |
IDiaSectionContrib::get_notCached | Pobiera flagę wskazującą, czy nie można buforować sekcji. |
IDiaSectionContrib::get_share | Pobiera flagę wskazującą, czy sekcja może być współdzielona w pamięci. |
IDiaSectionContrib::get_execute | Pobiera flagę wskazującą, czy sekcja jest wykonywalna jako kod. |
IDiaSectionContrib::get_read | Pobiera flagę wskazującą, czy można odczytać sekcję. |
IDiaSectionContrib::get_write | Pobiera flagę wskazującą, czy można napisać sekcję. |
IDiaSectionContrib::get_dataCrc | Pobiera cykliczne sprawdzanie nadmiarowości (CRC) danych w sekcji . |
IDiaSectionContrib::get_relocationsCrc | Pobiera CRC informacji o relokacji dla sekcji. |
IDiaLineNumber::get_compilandId | Pobiera identyfikator compiland dla sekcji. |
Uwagi
Uwagi dotyczące wywoływania
Ten interfejs jest uzyskiwany przez wywołanie metod IDiaEnumSectionContribs::Item i IDiaEnumSectionContribs::Next . Zobacz interfejs IDiaEnumSectionContribs, aby zapoznać się z przykładem uzyskania interfejsuIDiaSectionContrib
.
Przykład
Ta funkcja pokazuje adres każdej sekcji wraz z skojarzonymi symbolami. Zobacz interfejs IDiaEnumSectionContribs, aby zobaczyć, jak IDiaSectionContrib
interfejs jest uzyskiwany.
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" );
}
}
}
}
Wymagania
Nagłówek: Dia2.h
Biblioteka: diaguids.lib
BIBLIOTEKA DLL: msdia80.dll
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla