다음을 통해 공유


IDiaSession

디버그 기호에 대한 쿼리 컨텍스트를 제공합니다.

구문

IDiaSession : IUnknown

메서드

다음 표에서는 IDiaSession 메서드를 보여 줍니다.

메서드 설명
IDiaSession::get_loadAddress 이 기호 저장소의 기호에 해당하는 실행 파일의 로드 주소를 검색합니다. put_loadAddress 메서드에 전달된 값과 동일한 값입니다.
IDiaSession::put_loadAddress 이 기호 저장소의 기호에 해당하는 실행 파일의 로드 주소를 설정합니다. 참고: IDiaSession 개체를 얻을 때와 개체 사용을 시작하기 전에 반드시 이 메서드를 호출해야 합니다.
IDiaSession::get_globalScope 전역 범위에 대한 참조를 검색합니다.
IDiaSession::getEnumTables 기호 저장소에 포함된 모든 테이블에 대한 열거자를 검색합니다.
IDiaSession::getSymbolsByAddr 정적 위치에 있는 모든 명명된 기호에 대한 열거자를 검색합니다.
IDiaSession::findChildren 이름 및 기호 형식과 일치하는 지정된 부모 식별자의 모든 자식 요소를 검색합니다.
IDiaSession::findChildrenEx 최적화된 로컬을 포함하여 이름 및 기호 형식과 일치하는 지정된 부모 식별자의 모든 자식을 검색합니다.
IDiaSession::findChildrenExByAddr 지정된 주소를 포함하거나 가장 가까운 최적화된 로컬을 포함하여 이름 및 기호 형식과 일치하는 지정된 부모 식별자의 모든 자식을 검색합니다.
IDiaSession::findChildrenExByVA 지정된 VA(가상 주소)를 포함하거나 가장 가까운 최적화된 로컬을 포함하여 이름 및 기호 형식과 일치하는 지정된 부모 식별자의 모든 자식을 검색합니다.
IDiaSession::findChildrenExByRVA 지정된 RVA(상대 가상 주소)를 포함하거나 가장 가까운 최적화된 로컬을 포함하여 이름 및 기호 형식과 일치하는 지정된 부모 식별자의 모든 자식을 검색합니다.
IDiaSession::findSymbolByAddr 지정된 주소를 포함하거나 지정된 주소와 가장 가까운 지정된 기호 형식을 검색합니다.
IDiaSession::findSymbolByRVA 지정된 RVA(상대 가상 주소)를 포함하거나 이와 가장 가까운, 지정된 기호 형식을 검색합니다.
IDiaSession::findSymbolByVA 지정된 VA(가상 주소)를 포함하거나 이와 가장 가까운, 지정된 기호 형식을 검색합니다.
IDiaSession::findSymbolByToken 지정된 메타데이터 토큰을 포함하는 기호를 검색합니다.
IDiaSession::symsAreEquiv 두 기호가 동일한지 확인합니다.
IDiaSession::symbolById 고유 식별자를 사용하여 기호를 검색합니다.
IDiaSession::findSymbolByRVAEx 지정된 상대 가상 주소 및 오프셋을 포함하거나 이와 가장 가까운, 지정된 기호 형식을 검색합니다.
IDiaSession::findSymbolByVAEx 지정된 가상 주소와 오프셋을 포함하거나 이와 가장 가까운, 지정된 기호 형식을 검색합니다.
IDiaSession::findFile 컴파일 및 이름으로 원본 파일을 검색합니다.
IDiaSession::findFileById 원본 파일 식별자를 사용하여 원본 파일을 검색합니다.
IDiaSession::findLines 지정된 컴파일 및 원본 파일 식별자 내에서 줄 번호를 검색합니다.
IDiaSession::findLinesByAddr 지정된 주소가 포함된 지정된 컴파일의 줄을 검색합니다.
IDiaSession::findLinesByRVA 지정된 상대 가상 주소가 포함된 지정된 컴파일의 줄을 검색합니다.
IDiaSession::findLinesByVA 지정된 주소 범위에 포함된 줄의 줄 번호 정보를 찾습니다.
IDiaSession::findLinesByLinenum 원본 파일 및 줄 번호를 사용하여 지정된 컴파일의 줄을 검색합니다.
IDiaSession::findInjectedSource 기호 저장소에 배치된 원본을 특성 공급자 또는 컴파일 프로세스의 다른 구성 요소를 사용하여 검색합니다.
IDiaSession::getEnumDebugStreams 디버그 데이터 스트림의 열거형 시퀀스를 검색합니다.
IDiaSession::findInlineFramesByAddr 클라이언트가 지정된 주소의 모든 인라인 프레임에서 반복될 수 있게 하는 열거형을 검색합니다.
IDiaSession::findInlineFramesByRVA 클라이언트가 지정된 RVA(상대 가상 주소)의 모든 인라인 프레임에서 반복될 수 있게 하는 열거형을 검색합니다.
IDiaSession::findInlineFramesByVA 클라이언트가 지정된 VA(가상 주소)의 모든 인라인 프레임에서 반복될 수 있게 하는 열거형을 검색합니다.
IDiaSession::findInlineeLines 클라이언트에서 지정된 부모 기호에 의해 직접 또는 간접적으로 인라인된 모든 함수의 줄 번호 정보를 반복할 수 있도록 하는 열거형을 검색합니다.
IDiaSession::findInlineeLinesByAddr 지정된 부모 기호를 사용하여 직간접적으로 인라인되었으며 지정된 주소 범위 내에 포함된 모든 함수의 줄 번호 정보를 클라이언트에서 반복할 수 있게 하는 열거형을 검색합니다.
IDiaSession::findInlineeLinesByRVA 지정된 부모 기호를 사용하여 직간접적으로 인라인되었으며 지정된 RVA(상대 가상 주소) 내에 포함된 모든 함수의 줄 번호 정보를 클라이언트에서 반복할 수 있게 하는 열거형을 검색합니다.
IDiaSession::findInlineeLinesByVA 지정된 부모 기호를 사용하여 직간접적으로 인라인되었으며 지정된 VA(가상 주소) 내에 포함된 모든 함수의 줄 번호 정보를 클라이언트에서 반복할 수 있게 하는 열거형을 검색합니다.
IDiaSession::findInlineeLinesByLinenum 클라이언트가 지정된 소스 파일 및 줄 번호에서 직접 또는 간접적으로 인라인되는 모든 함수의 줄 번호 정보를 반복할 수 있도록 하는 열거형을 검색합니다.
IDiaSession::findInlineesByName 클라이언트가 지정된 이름과 일치하는 모든 인라인 함수의 줄 번호 정보를 반복할 수 있게 하는 열거형을 검색합니다.
IDiaSession::findAcceleratorInlineesByLinenum 지정된 원본 위치에 해당하는 인라인 프레임에 대한 기호의 열거형을 반환합니다.
IDiaSession::findSymbolsForAcceleratorPointerTag 부모 Accelerator 스텁 함수에 있는, 지정된 태그 값이 해당하는 변수에 대한 기호의 열거형을 반환합니다.
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag 해당하는 태그 값이 지정되면 이 메서드는 지정된 상대 가상 주소에 지정된 부모 Accelerator 스텁 함수에 포함된 기호의 열거형을 반환합니다.
IDiaSession::findAcceleratorInlineesByName 지정된 인라인 함수 이름에 해당하는 인라인 프레임에 대한 기호의 열거형을 반환합니다.
IDiaSession::addressForVA 지정된 VA(가상 주소)에 해당하는 주소를 반환합니다.
IDiaSession::addressForRVA 지정된 RVA(상대 가상 주소)에 해당하는 주소를 반환합니다.
IDiaSession::findILOffsetsByAddr 클라이언트가 지정된 주소 범위 내에서 MSIL 오프셋을 반복할 수 있도록 하는 열거형을 검색합니다.
IDiaSession::findILOffsetsByRVA 지정된 RVA(상대 가상 주소) 범위 내에서 클라이언트가 MSIL 오프셋을 반복할 수 있도록 하는 열거형을 검색합니다.
IDiaSession::findILOffsetsByVA 클라이언트가 지정된 VA(가상 주소) 범위 내에서 MSIL 오프셋을 반복할 수 있도록 하는 열거형을 검색합니다.
IDiaSession::findInputAssemblyFiles 클라이언트가 .NET 네이티브 입력 어셈블리 파일을 반복할 수 있도록 하는 열거형을 검색합니다.
IDiaSession::findInputAssembly 인덱스별로 .NET 네이티브 입력 어셈블리 파일을 검색합니다.
IDiaSession::findInputAssemblyById 고유 식별자를 사용하여 .NET 네이티브 입력 어셈블리 파일을 검색합니다.
IDiaSession::getFuncMDTokenMapSize .NET 네이티브 메타데이터 함수 토큰 맵의 크기(바이트)를 검색합니다.
IDiaSession::getFuncMDTokenMap .NET 네이티브 메타데이터 함수 토큰 맵의 내용을 검색합니다.
IDiaSession::getTypeMDTokenMapSize .NET 네이티브 메타데이터 형식 토큰 맵의 크기(바이트)를 검색합니다.
IDiaSession::getTypeMDTokenMap .NET 네이티브 메타데이터 형식 토큰 맵의 내용을 검색합니다.
IDiaSession::getNumberOfFunctionFragments_VA 지정된 VA(가상 주소)에서 함수에 대한 불협화음 조각 수를 검색합니다.
IDiaSession::getNumberOfFunctionFragments_RVA 지정된 RVA(상대 가상 주소)에서 함수의 불협화음 조각 수를 검색합니다.
IDiaSession::getFunctionFragments_VA 지정된 VA(가상 주소)에서 함수에 대한 불협화음 조각의 주소와 길이를 검색합니다.
IDiaSession::getFunctionFragments_RVA 지정된 RVA(상대 가상 주소)에서 함수에 대한 불협화음 조각의 주소와 길이를 검색합니다.
IDiaSession::getExports 내보낸 모든 기호에 대한 열거자를 검색합니다.
IDiaSession::getHeapAllocationSites 모든 SymTagHeapAllocationSite 기호에 대한 열거자를 검색합니다.
IDiaSession::findInputAssemblyFile 지정된 기호의 부모인 .NET 네이티브 입력 어셈블리 파일을 검색합니다.

설명

개체를 만든 IDiaSession 후 메서드를 호출 IDiaSession::put_loadAddress 해야 하며, 메서드에 put_loadAddress 전달된 값은 0이 아니어야 기호의 VA(가상 주소) 속성에 액세스할 수 있습니다. 로드 주소는 디버깅 중인 실행 파일을 로드한 프로그램에서 제공됩니다. 예를 들어 Win32 함수 GetModuleInformation을 호출하여 (실행 파일에 대한 핸들이 지정된 경우) 실행 파일의 로드 주소를 검색할 수 있습니다.

예시

이 예제에서는 DIA(디버그 인터페이스 액세스) SDK의 일반 초기화의 일부로 인터페이스를 가져오는 IDiaSession 방법을 보여 줍니다.

CComPtr<IDiaDataSource> pSource;
ComPtr<IDiaSession> psession;

void InitializeDIA(const char *szFilename)
{
    HRESULT hr = CoCreateInstance( CLSID_DiaSource,
                                   NULL,
                                   CLSCTX_INPROC_SERVER,
                                   __uuidof( IDiaDataSource ),
                                  (void **) &pSource);
    if (FAILED(hr))
    {
        Fatal("Could not CoCreate CLSID_DiaSource. Register msdia80.dll." );
    }
    wchar_t wszFilename[ _MAX_PATH ];
    mbstowcs( wszFilename,
              szFilename,
              sizeof( wszFilename )/sizeof( wszFilename[0] ) );
    if ( FAILED( pSource->loadDataFromPdb( wszFilename ) ) )
    {
        if ( FAILED( pSource->loadDataForExe( wszFilename, NULL, NULL ) ) )
        {
            Fatal( "loadDataFromPdb/Exe" );
        }
    }
    if ( FAILED( pSource->openSession( &psession ) ) )
    {
        Fatal( "openSession" );
    }
}

요구 사항

헤더: Dia2.h

라이브러리: diaguids.lib

DLL: msdia80.dll

참고 항목