IDiaSectionContrib
Ruft die Daten ab, die über den beitrag Abschnitts beschrieben. h. einen zusammenhängenden Speicherblock, der dem Bild von einer Kompiliereinheit bereitgestellt wird.
IDiaSectionContrib : IUnknown
Methoden in die Vtable-Reihenfolge
In der folgenden Tabelle werden die Methoden von IDiaSectionContriban.
Methode |
Beschreibung |
---|---|
Ruft einen Verweis auf das Symbol Kompiliereinheits ab, das diesen Abschnitt beitrug. |
|
Ruft den Teil der Adresse des Abschnitts Nachbedingung ab. |
|
Ruft den Offset Teil der Adresse des Nachbedingung ab. |
|
Ruft die relative virtuelle Adresse (RVA) des Bilds in der Nachbedingung ab. |
|
Ruft die virtuelle Adresse (VA) des Nachbedingung ab. |
|
Ruft die Anzahl der Bytes in einem Abschnitt ab. |
|
Ruft ein Flag ab, das angibt, ob der Abschnitt nicht geblättertes aufgrund von ungenügendem Arbeitsspeicher erfolgen kann. |
|
Ruft ein Flag ab, das angibt, ob der Grenze Speicherplatz zur nächsten Abschnitt nicht aufgefüllt werden soll. |
|
Ruft ein Flag ab, das angibt, ob der Abschnitt ausführbaren Code enthält. |
|
Ruft ein Flag ab, das angibt, ob der Abschnitt 16-Bit-Code enthält. |
|
Ruft ein Flag ab, das angibt, ob der Abschnitt enthält initialisierte Daten. |
|
Ruft ein Flag ab, das angibt, ob der Abschnitt nicht initialisierte Daten enthält. |
|
Ruft ein Flag ab, das angibt, ob ein Abschnitt Kommentare oder ähnliche Informationen enthält. |
|
Ruft ein Flag ab, das angibt, ob der Bereich entfernt wird, bevor er Teil des Bildes im Arbeitsspeicher ausgeführt wird. |
|
Ruft ein Flag ab, das angibt, ob es sich bei dem Abschnitt ein COMDAT-Datensatz ist. |
|
Ruft ein Flag ab, das angibt, ob der Abschnitt verworfen werden kann. |
|
Ruft ein Flag ab, das angibt, ob der Abschnitt nicht zwischengespeichert werden kann. |
|
Ruft ein Flag ab, das angibt, ob der Bereich im Arbeitsspeicher freigegeben werden kann. |
|
Ruft ein Flag ab, das angibt, ob der Bereich als Code ausgeführt werden kann. |
|
Ruft ein Flag ab, das angibt, ob der Abschnitt gelesen werden kann. |
|
Ruft ein Flag ab, das angibt, ob der Bereich geschrieben werden kann. |
|
Ruft die zyklische Blockprüfung (CRC) der Daten im Abschnitt ab. |
|
Ruft das Verschieben der CRC für den Abschnitt ab. |
|
Ruft den Bezeichner für den Kompiliereinheits Abschnitt ab. |
Hinweise
Hinweise für Aufrufer
Diese Schnittstelle wird abgerufen, indem die IDiaEnumSectionContribs::Item und IDiaEnumSectionContribs::Next-Methoden aufgerufen werden.Zeigen Sie die IDiaEnumSectionContribs-Schnittstelle als Beispiel für die IDiaSectionContrib-Schnittstelle abzurufen.
Beispiel
Diese Funktion wird die Adresse eines Abschnitts zusammen mit allen zugeordneten Symbolen angezeigt.Zeigen Sie die IDiaEnumSectionContribs-Schnittstelle, um zu sehen, wie die IDiaSectionContrib-Schnittstelle ermittelt 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
DLLs: msdia80.dll