IDiaSectionContrib
描述區段中所佔比重的擷取資料,也就是連續的記憶體區塊至映像所產生的編譯。
IDiaSectionContrib : IUnknown
方法 Vtable 順序
下表顯示的方法IDiaSectionContrib。
方法 |
描述 |
---|---|
擷取提供本章節的編譯符號的參考。 |
|
擷取所佔比重的地址] 區段部份。 |
|
擷取位移所佔比重的地址部份。 |
|
擷取的映像相對虛擬位址 (RVA) 的比重。 |
|
擷取所佔比重的虛擬位址 (VA)。 |
|
擷取一節中的位元組的數目。 |
|
會擷取旗標,指出是否區段無法分頁記憶體用完。 |
|
會擷取旗標,表示是否區段應該不會填補接下來的記憶體界限。 |
|
會擷取旗標,指出是否區段包含可執行程式碼。 |
|
會擷取旗標,指出是否區段包含 16 位元的程式碼。 |
|
會擷取旗標,指出是否區段包含初始化的資料。 |
|
會擷取旗標,指出是否區段包含未初始化的資料。 |
|
會擷取旗標,指出是否一個區段包含註解或類似的資訊。 |
|
會擷取旗標,表示它由記憶體中影像的一部份之前,是否要移除區段。 |
|
會擷取旗標,指示區段是否為衝突的記錄。 |
|
會擷取旗標,指出是否可以捨棄一節。 |
|
會擷取旗標,指出是否無法快取的區段。 |
|
會擷取旗標,指出是否可以在記憶體中共用區段。 |
|
會擷取旗標,指出是否可執行程式碼區段。 |
|
會擷取旗標,指出是否可讀取的區段。 |
|
會擷取旗標,指出是否可寫入區段。 |
|
擷取的資料區段中的循環冗餘檢查 (CRC)。 |
|
擷取的 CRC 時的區段的重新配置資訊。 |
|
擷取一節的編譯時識別項。 |
備註
呼叫者的備忘稿
這個介面藉由呼叫IDiaEnumSectionContribs::Item和IDiaEnumSectionContribs::Next方法。 請參閱IDiaEnumSectionContribs介面取得的例如IDiaSectionContrib介面。
範例
這個函式會顯示每個區段,以及任何相關符號的位址。 請參閱IDiaEnumSectionContribs介面,請參閱如何IDiaSectionContrib介面會取得。
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" );
}
}
}
}
需求
標頭: Dia2.h
媒體櫃: diaguids.lib
DLL: msdia80.dll