다음을 통해 공유


IDiaSession

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

구문

IDiaSession : IUnknown

메서드

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

메서드 설명
IDiaSession::get_loadAddress 이 기호 저장소의 기호에 해당하는 실행 파일의 로드 주소를 검색합니다. put_loadAddress 메서드에 전달된 값과 동일한 값입니다.
IDiaSession::put_loadAddress 이 기호 저장소의 기호에 해당하는 실행 파일의 로드 주소를 설정합니다. 참고:IDiaSession 개체를 얻을 때와 개체 사용을 시작하기 전에 반드시 이 메서드를 호출해야 합니다.
IDiaSession::get_globalScope 전역 범위에 대한 참조를 검색합니다.
IDiaSession::getEnumTables 기호 저장소에 포함된 모든 테이블에 대한 열거자를 검색합니다.
IDiaSession::getSymbolsByAddr 정적 위치에 있는 모든 명명된 기호에 대한 열거자를 검색합니다.
IDiaSession::findChildren 이름 및 기호 형식과 일치하는 지정된 부모 식별자의 모든 자식 요소를 검색합니다.
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::findSymbolsForAcceleratorPointerTag 부모 Accelerator 스텁 함수에 있는, 지정된 태그 값이 해당하는 변수에 대한 기호의 열거형을 반환합니다.
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag 해당하는 태그 값이 지정되면 이 메서드는 지정된 상대 가상 주소에 지정된 부모 Accelerator 스텁 함수에 포함된 기호의 열거형을 반환합니다.
IDiaSession::findAcceleratorInlineesByName 지정된 인라인 함수 이름에 해당하는 인라인 프레임에 대한 기호의 열거형을 반환합니다.
IDiaSession::findAcceleratorInlineesByLinenum 지정된 원본 위치에 해당하는 인라인 프레임에 대한 기호의 열거형을 반환합니다.

설명

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

예시

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

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

참고 항목