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