IDiaSectionContrib
Ruft Daten ab, die einen Abschnittsbeitrag beschreiben, d. h. einen zusammenhängenden Speicherblock, der von einer Kompiliereinheit zum Image beigetragen wurde.
Syntax
IDiaSectionContrib : IUnknown
Methoden in Vtable-Reihenfolge
In der folgenden Tabelle sind die Methoden von IDiaSectionContrib
aufgeführt.
Methode | Beschreibung |
---|---|
IDiaSectionContrib::get_compiland |
Ruft einen Verweis auf das Kompiliereinheitssymbol ab, das diesen Abschnitt beigetragen hat. |
IDiaSectionContrib::get_addressSection |
Ruft den Abschnittsteil der Adresse des Beitrags ab. |
IDiaSectionContrib::get_addressOffset |
Ruft den Offsetteil der Adresse des Beitrags ab. |
IDiaSectionContrib::get_relativeVirtualAddress |
Ruft die virtuelle Adresse (RVA) des Beitrags relativ zum Image ab. |
IDiaSectionContrib::get_virtualAddress |
Ruft die virtuelle Adresse (VA) des Beitrags ab. |
IDiaSectionContrib::get_length |
Ruft die Anzahl der Bytes in einem Abschnitt ab. |
IDiaSectionContrib::get_notPaged |
Ruft ein Flag ab, das angibt, dass der Abschnitt nicht aus dem Arbeitsspeicher ausgelagert werden kann. |
IDiaSectionContrib::get_nopad |
Ruft ein Flag ab, das angibt, ob der Abschnitt nicht bis zur nächsten Speichergrenze aufgefüllt werden sollte. |
IDiaSectionContrib::get_code |
Ruft ein Flag ab, das anzeigt, ob der Abschnitt ausführbaren Code enthält. |
IDiaSectionContrib::get_initializedData |
Hiermit wird ein Flag abgerufen, das angibt, ob der Abschnitt initialisierbare Daten enthält. |
IDiaSectionContrib::get_uninitializedData |
Ruft ein Flag ab, das angibt, ob der Abschnitt nicht initialisierte Daten enthält. |
IDiaSectionContrib::get_informational |
Ruft ein Flag ab, das angibt, ob ein Abschnitt Kommentare oder ähnliche Informationen enthält |
IDiaSectionContrib::get_remove |
Ruft ein Flag ab, das anzeigt, ob der Abschnitt entfernt wird, bevor er Teil des In-Memory-Images wird. |
IDiaSectionContrib::get_comdat |
Ruft ein Flag ab, das anzeigt, ob der Abschnitt ein COMDAT-Datensatz ist. |
IDiaSectionContrib::get_discardable |
Ruft ein Flag ab, das angibt, ob der Abschnitt verworfen werden kann. |
IDiaSectionContrib::get_notCached |
Ruft ein Flag ab, das angibt, dass der Abschnitt nicht zwischengespeichert werden kann. |
IDiaSectionContrib::get_share |
Ruft ein Flag ab, das angibt, ob der Abschnitt im Arbeitsspeicher freigegeben werden kann. |
IDiaSectionContrib::get_execute |
Ruft ein Flag ab, das anzeigt, ob der Abschnitt als Code ausführbar ist. |
IDiaSectionContrib::get_read |
Ruft ein Flag ab, das angibt, ob der Abschnitt gelesen werden kann. |
IDiaSectionContrib::get_write |
Ruft ein Flag ab, das angibt, ob der Abschnitt geschrieben werden kann. |
IDiaSectionContrib::get_dataCrc |
Ruft die zyklische Redundanzprüfung (CRC) der Daten im Abschnitt ab. |
IDiaSectionContrib::get_relocationsCrc |
Ruft die zyklische Redundanzprüfung (CRC) der Verlagerungsinformationen im Abschnitt ab. |
IDiaSectionContrib::get_compilandId |
Ruft den Bezeichner der Kompiliereinheit für den Abschnitt ab. |
IDiaSectionContrib::get_code16bit |
Ruft ein Flag ab, das angibt, ob der Abschnitt 16-Bit-Code enthält. |
Hinweise
Hinweise für Aufrufer
Diese Schnittstelle wird durch Aufrufen der IDiaEnumSectionContribs::Item
Methoden abgerufen IDiaEnumSectionContribs::Next
. Ein Beispiel zum Abrufen der Schnittstelle finden Sie in der IDiaEnumSectionContribs
IDiaSectionContrib
Schnittstelle.
Beispiel
Diese Funktion zeigt die Adresse jedes Abschnitts zusammen mit allen zugeordneten Symbolen an. Sehen Sie sich die IDiaEnumSectionContribs
Schnittstelle an, um zu sehen, wie die IDiaSectionContrib
Schnittstelle abgerufen wird.
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" );
}
}
}
}
Anforderungen
Header: Dia2.h
Bibliothek: diaguids.lib
DLL: msdia140.dll