Sdílet prostřednictvím


IDiaEnumSymbolsByAddr

Výčet různých symbolů obsažených ve zdroji dat podle adresy.

IDiaEnumSymbolsByAddr : IUnknown

Metody v pořadí virtuální tabulka

Následující tabulka obsahuje metody IDiaEnumSymbolsByAddr.

Metoda

Description

IDiaEnumSymbolsByAddr::symbolByAddr

Provedením vyhledávání podle oddílu a posun pozice čítače výčtu.

IDiaEnumSymbolsByAddr::symbolByRVA

Pozice čítače výčtu provedením vyhledávacího relativní virtuální adresu (RVA).

IDiaEnumSymbolsByAddr::symbolByVA

Pozice čítače výčtu v provádění vyhledávání pomocí virtuální adresy (VA).

IDiaEnumSymbolsByAddr::Next

Načte další symboly v pořadí podle adresy.Počet prvků, které jsou vyvolány aktualizuje umístění čítače výčtu.

IDiaEnumSymbolsByAddr::Prev

Obnoví předchozí symboly v pořadí podle adresy.Počet prvků, které jsou vyvolány aktualizuje umístění čítače výčtu.

IDiaEnumSymbolsByAddr::Clone

Vytvoří kopii objektu.

Poznámky

Toto rozhraní poskytuje symboly, které jsou seskupeny podle adresy.Práce se symboly, které jsou seskupeny podle typu, například SymTagUDT (typ definovaný uživatelem) nebo SymTagBaseClass, použít IDiaEnumSymbols rozhraní.

Poznámky pro volající

Získat voláním rozhraní IDiaSession::getSymbolsByAddr metoda.

Příklad

Tato funkce zobrazí název a adresu všech symbolů seřazený podle relativní virtuální adresu.

void ShowSymbolsByAddress(IDiaSession *pSession)
{
    CComPtr<IDiaEnumSymbolsByAddr> pEnumByAddr;
    if ( FAILED( psession->getSymbolsByAddr( &pEnumByAddr ) ) )
    {
        Fatal( "getSymbolsByAddr" );
    }
    CComPtr<IDiaSymbol> pSym;
    if ( FAILED( pEnumByAddr->symbolByAddr( 1, 0, &pSym ) ) )
    {
        Fatal( "symbolByAddr" );
    }
    DWORD rvaLast = 0;
    if ( pSym->get_relativeVirtualAddress( &rvaLast ) == S_OK )
    {
        pSym = 0;
        if ( FAILED( pEnumByAddr->symbolByRVA( rvaLast, &pSym ) ) )
        {
            Fatal( "symbolByAddr" );
        }
        printf( "Symbols in order\n" );
        do
        { 
            CDiaBSTR name;
            if ( pSym->get_name( &name ) != S_OK )
            {
                printf( "\t0x%08X (%ws) <no name>\n", rvaLast );
            }
            else
            {
               printf( "\t0x%08X %ws\n", rvaLast, name );
            }
            pSym = 0;
            celt = 0;
            if ( FAILED( hr = pEnumByAddr->Next( 1, &pSym, &celt ) ) )
            {
                break;
            }
        } while ( celt == 1 );
    }
}

Požadavky

Záhlaví: Dia2.h

Knihovny: diaguids.lib

Knihovna DLL: msdia80.dll

Viz také

Referenční dokumentace

IDiaSession::getSymbolsByAddr

IDiaEnumSymbols

Další zdroje

Rozhraní (ladění přístupu k rozhraní SDK)