다음을 통해 공유


IDiaEnumSymbolsByAddr

주소에 의해 데이터 소스에 포함 된 다양 한 기호를 열거 합니다.

IDiaEnumSymbolsByAddr : IUnknown

메서드에서 Vtable 순서

다음 표에서 메서드를 IDiaEnumSymbolsByAddr.

메서드

설명

IDiaEnumSymbolsByAddr::symbolByAddr

열거자 섹션 및 오프셋에서 조회를 수행 하 여 배치 합니다.

IDiaEnumSymbolsByAddr::symbolByRVA

열거자가 상대 가상 주소 (RVA)에서 조회를 수행 하 여 배치 합니다.

IDiaEnumSymbolsByAddr::symbolByVA

가상 주소 (VA)에서 조회를 수행 하 여 해당 열거자를 배치 합니다.

IDiaEnumSymbolsByAddr::Next

순서에서 다음 기호에서 주소를 검색합니다.반입 된 요소 수 만큼는 열거자의 위치를 업데이트 합니다.

IDiaEnumSymbolsByAddr::Prev

이전 기호 순서 대로 주소를 검색합니다.반입 된 요소 수 만큼는 열거자의 위치를 업데이트 합니다.

IDiaEnumSymbolsByAddr::Clone

개체의 복사본을 만듭니다.

설명

이 주소에 의해 그룹화 기호는.기호 형식으로, 예를 들어 그룹화를 사용 하려면 SymTagUDT (사용자 정의 형식) 또는 SymTagBaseClass를 사용 하는 IDiaEnumSymbols 인터페이스.

호출자에 대 한 참고 사항

이 인터페이스를 호출 하 여 얻을 IDiaSession::getSymbolsByAddr 메서드가 있습니다.

예제

이 함수에는 이름 및 주소 상대 가상 주소로 주문한 모든 기호를 표시 합니다.

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 );
    }
}

요구 사항

헤더: Dia2.h

라이브러리: diaguids.lib

DLL: msdia80.dll

참고 항목

참조

IDiaSession::getSymbolsByAddr

IDiaEnumSymbols

기타 리소스

인터페이스(디버그 인터페이스 액세스 SDK)