IDiaSymbol
기호 인스턴스의 속성에 대해 설명합니다.
IDiaSymbol : IUnknown
메서드(사전순)
다음 표에서는 IDiaSymbol의 메서드를 보여 줍니다.
[!참고]
기호는 기호 형식에 따라 이러한 메서드 중 일부에 대해서만 의미 있는 데이터를 반환합니다.메서드가 S_OK를 반환할 경우 해당 메서드는 의미 있는 데이터를 반환합니다.
메서드 |
설명 |
---|---|
모든 기호의 자식을 검색합니다. |
|
기호의 자식을 검색합니다.이 메서드는 IDiaSymbol::findChildren의 확장 버전입니다. |
|
지정된 주소에 유효한 기호의 자식을 검색합니다. |
|
지정된 상대 가상 주소(RVA)에 유효한 기호의 자식을 검색합니다. |
|
지정된 가상 주소에 유효한 기호의 자식을 검색합니다. |
|
주어진된 주소에서 인라인 프레임을 통해 반복 하는 클라이언트를 허용 하는 열거형을 가져옵니다. |
|
지정한 상대 가상 주소 (RVA)에서 인라인 프레임을 통해 반복 하는 클라이언트가 열거형을 검색 합니다. |
|
인라인 프레임에 지정 된 가상 주소 (VA)을 통해 반복 하는 클라이언트를 허용 하는 열거형을 가져옵니다. |
|
줄 번호 정보가 직접 인라인에 모든 기능 또는이 기호에 간접적으로 반복 하는 클라이언트가 열거형을 검색 합니다. |
|
열거형에는 줄 번호 정보를 직접 또는 간접적으로,이 기호는 지정 된 주소 범위 내에서 인라인인 모든 함수를 반복 하는 클라이언트 수를 검색 합니다. |
|
열거형에는 줄 번호 정보를 직접 또는 간접적으로,이 기호는 지정한 상대 가상 주소 (RVA) 내에서 인라인, 될 모든 함수를 반복 하는 클라이언트 수를 검색 합니다. |
|
열거형에는 줄 번호 정보를 직접 또는 간접적으로,이 기호에 지정 된 가상 주소 (VA) 내에서 인라인, 될 모든 함수를 반복 하는 클라이언트 수를 검색 합니다. |
|
해당 태그 값이 주어진 경우이 메서드 스텁 함수에 지정한 상대 가상 주소에 포함 된 기호의 열거형을 반환 합니다. |
|
가속기 포인터 태그 C++ AMP 스텁 함수를 반환합니다. |
|
C + + AMP 가속기 스텁 함수에 해당 하는 모든 가속기 포인터 태그 값을 반환 합니다. |
|
클래스 멤버의 액세스 한정자를 검색합니다. |
|
주소 위치의 오프셋 부분을 검색합니다. |
|
주소 위치의 섹션 부분을 검색합니다. |
|
기호가 다른 주소를 참조하는지 여부를 나타내는 플래그를 검색합니다. |
|
프로그램 데이터베이스의 보존 기간 값을 검색합니다. |
|
기호의 배열 인덱스 형식 식별자를 검색합니다.. |
|
기호의 배열 인덱스 형식 식별자를 검색합니다.. |
|
백 엔드 주 버전 번호를 검색합니다. |
|
백 엔드 부 버전 번호를 검색합니다. |
|
백 엔드 빌드 번호를 검색합니다. |
|
기본 데이터의 오프셋을 검색합니다. |
|
기본 데이터 슬롯을 검색합니다. |
|
포인터를 기준으로 심볼을 검색 합니다. |
|
기호 ID를 기준으로 포인터를 검색 합니다. |
|
단순 형식의 형식 태그를 검색합니다. |
|
위치의 비트 위치를 검색합니다. |
|
기본 제공 되는 HLSL 형식 중 하나인을 검색합니다. |
|
메서드 호출 규칙 표시기가 반환됩니다. |
|
기호의 부모 클래스에 대한 참조를 검색합니다. |
|
기호의 클래스 부모 식별자를 검색합니다. |
|
코드 주소를 가리키는 공용 기호가 있는지 여부를 나타내는 플래그를 검색합니다. |
|
기호가 컴파일러에서 생성되었는지 여부를 나타내는 플래그입니다. |
|
만드는 데 사용 되는 컴파일러의 이름을 검색 하는 컴파일 대상. |
|
사용자 정의 데이터 형식에 생성자가 있는지 여부를 나타내는 플래그를 검색합니다. |
|
이 기호를 포함 하는 심볼을 검색합니다. |
|
사용자 정의 데이터 형식이 상수인지 여부를 나타내는 플래그를 검색합니다. |
|
목록 또는 배열의 항목 수를 검색합니다. |
|
로컬 기호와 연관 된 유효한 주소 범위의 수를 검색합니다. |
|
함수는 사용자 지정 호출 규칙을 사용 하는지 여부를 나타내는 플래그를 검색 합니다. |
|
OEM 기호의 데이터 바이트를 검색합니다. |
|
데이터 기호의 변수 분류를 검색합니다. |
|
컴파일 된 프로그램 또는 단위의 편집 하며 계속 하기 기능을 설명하는 플래그를 검색합니다. |
|
까지 반환 함수를 사용 하는지 여부를 나타내는 플래그를 검색 합니다. |
|
프론트 엔드 주 버전 번호를 검색합니다. |
|
프론트 엔드 부 버전 번호를 검색합니다. |
|
프론트 엔드 빌드 번호를 검색합니다. |
|
함수를 가리키는 공용 기호가 있는지 여부를 나타내는 플래그를 검색합니다. |
|
기호의 GUID를 검색합니다. |
|
함수 호출이 포함 되어 있는지 여부를 나타내는 플래그를 검색 합니다. alloca. |
|
사용자 정의 데이터 형식에 지정된 할당 연산자가 있는지 여부를 나타내는 플래그를 검색합니다. |
|
사용자 정의 데이터 형식에 지정된 캐스트 연산자가 있는지 여부를 나타내는 플래그를 검색합니다. |
|
컴파일 대상에 디버깅 정보가 포함 되어 있는지 여부를 나타내는 플래그를 검색 합니다. |
|
함수 스타일 C++ 예외 처리기 있는지 여부를 나타내는 플래그를 검색 합니다. |
|
이 함수는 비동기 예외 처리기 있는지 여부를 나타내는 플래그를 검색 합니다. |
|
함수가 인라인 어셈블리가 있는지 여부를 나타내는 플래그를 검색 합니다. |
|
함수 명령을 longjmp (C 스타일 예외 처리 부분)이 포함 되어 있는지 여부를 나타내는 플래그를 검색 합니다. |
|
모듈에 관리 코드가 포함되어 있는지 여부를 나타내는 플래그를 검색합니다. |
|
사용자 정의 데이터 형식에 중첩 형식 정의가 있는지 여부를 나타내는 플래그를 검색합니다. |
|
검색 기능이 나 컴파일 보안 검사를 컴파일된 있는지 여부를 나타내는 플래그 (통해는 /GS(버퍼 보안 검사) 컴파일러 스위치). |
|
함수 스타일 Win32 구조적 예외 처리 여부를 나타내는 플래그를 검색 합니다. |
|
함수에 setjmp 명령이 포함 되어 있는지 여부를 나타내는 플래그를 검색 합니다. |
|
사용자 정의 데이터 형식에 간접적 가상 기본 클래스가 있는지 여부를 나타내는 플래그를 검색합니다. |
|
함수가 인라인 특성으로 표시 되었는지 여부를 나타내는 플래그를 검색 합니다. |
|
함수는 인터럽트 명령에서 반환 되어 있는지 여부를 나타내는 플래그를 검색 합니다. |
|
함수가 기본 클래스 가상 함수인지 여부를 나타내는 플래그를 검색합니다. |
|
기호 그룹 공유 로컬 변수는 C++ AMP 가속기에 대 한 컴파일된 코드에 해당 하는지 여부를 나타내는 플래그를 검색 합니다. |
|
기호에 해당 하는지 여부를 나타내는 플래그를 검색은 정의 범위 기호 포인터 변수는 C++ AMP 가속기에 대 한 컴파일된 코드에서 태그 구성 요소에 대 한.범위 정의 기호 주소 범위 변수의 위치입니다. |
|
기호에 해당 하는 가속기에 대 한 컴파일된 셰이더 최상위 함수 기호에 해당 하는지 여부를 나타냅니다.는 parallel_for_each 를 호출 합니다. |
|
데이터 집계의 많은 기호 부분 인지 여부를 나타내는 플래그를 검색 합니다. |
|
기호 파일 C 유형이 포함 되어 있는지 여부를 나타내는 플래그를 검색 합니다. |
|
모듈 공용 중간 언어 (CIL에서) 네이티브 코드로 변환 되었는지 여부를 나타내는 플래그를 검색 합니다. |
|
사용자 정의 데이터 형식 요소의 특정 경계에 정렬 되어 있는지 여부를 나타내는 플래그를 검색 합니다. |
|
이 기호 높은 수준 셰이더 언어 (HLSL) 데이터를 나타내는지 여부를 지정 합니다. |
|
/hotpatch(핫 패치 가능 이미지 만들기) 컴파일러 스위치를 사용하여 모듈이 컴파일되었는지 여부를 나타내는 플래그를 검색합니다. |
|
관리 되는 컴파일 링커의 LTCG에 연결 되어 있는지 여부를 나타내는 플래그를 검색 합니다. |
|
행렬 행 주 여부를 지정 합니다. |
|
관리 되는 컴파일 대상 인지 여부를 나타내는 플래그를 검색을 합니다.netmodule (메타 데이터만 포함)입니다. |
|
지정 여부는 this 포인터가 가리키는 데이터 멤버를 여러 상속을 사용 합니다. |
|
검색 함수가 있는지 여부를 나타내는 플래그는 naked (C++) 특성. |
|
변수 최적화 여부를 지정 합니다. |
|
지정 여부는 this 포인터 기호 값을 기반으로 합니다. |
|
이 기호에 대 한 포인터 데이터 멤버 인지 여부를 지정 합니다. |
|
이 기호는 멤버 함수에 대 한 포인터 인지 여부를 지정 합니다. |
|
변수 반환 값을 전달 하는지 여부를 지정 합니다. |
|
/SDL 옵션으로 컴파일 모듈을 지정 합니다. |
|
지정 여부는 this 포인터가 가리키는 데이터와 단일 상속 멤버. |
|
별도 기호에 집계 데이터 분할 되었습니다 나타내는 플래그를 검색 합니다. |
|
함수 또는 썽크 계층이 정적인지 여부를 나타내는 플래그를 검색합니다. |
|
개인 기호 기호 파일에서 추출 했는지 여부를 나타내는 플래그를 검색 합니다. |
|
지정 여부는 this 포인터가 가리키는 데이터 멤버 가상 상속을 사용 합니다. |
|
언어의 소스를 검색합니다. |
|
이 기호로 표시되는 개체에 사용된 메모리의 바이트 수를 검색합니다. |
|
기호의 어휘 부모에 대한 참조를 검색합니다. |
|
기호의 어휘 부모 식별자를 검색합니다. |
|
개체가 로드된 라이브러리 또는 개체 파일의 파일 이름을 검색합니다. |
|
로컬 기호가 유효한 주소 범위의 길이가 반환됩니다. |
|
로컬 기호가 유효한 시작 주소 범위의 섹션 부분이 반환됩니다. |
|
로컬 기호가 유효한 시작 주소 범위의 오프셋 부분이 반환됩니다. |
|
로컬 기호가 유효한 주소 범위의 시작이 반환됩니다. |
|
데이터 기호의 위치 유형을 검색합니다. |
|
FORTRAN 배열 차원의 하한 값을 검색합니다. |
|
FORTRAN 배열 차원의 하한을 나타내는 기호 식별자를 검색합니다. |
|
대상 CPU의 형식을 검색합니다. |
|
관리 코드를 가리키는 기호가 있는지 여부를 나타내는 플래그를 검색합니다. |
|
메모리 공간 종류를 검색합니다. |
|
Microsoft 중간 언어(MSIL) 코드를 가리키는 공용 기호가 있는지 여부를 나타내는 플래그를 검색합니다. |
|
기호의 이름을 검색합니다. |
|
사용자 정의 데이터 형식이 중첩인지 여부를 나타내는 플래그를 검색합니다. |
|
검색 기능으로 표시 되어 있는지 여부를 나타내는 플래그는 noinline 특성. |
|
검색으로 함수를 선언 했습니다 여부를 나타내는 플래그는 noreturn 특성. |
|
스택 순서 없는 스택 버퍼 검사의 일부로 할 수 있는지 여부를 나타내는 플래그를 검색 합니다. |
|
함수 또는 레이블 절대로 도달할 수 있는지 여부를 나타내는 플래그를 검색 합니다. |
|
가속기 포인터 태그 C++ AMP 스텁 함수를 반환합니다. |
|
원래 형식에 적용 되는 한정자를 검색 합니다. |
|
레지스터 인덱스를 검색합니다. |
|
행렬의 행 수를 검색합니다. |
|
행렬의 열 수를 검색합니다. |
|
개체 파일 이름을 검색합니다. |
|
클래스 메서드에 대한 개체 포인터 형식을 검색합니다. |
|
기호의 oemId 값을 검색합니다. |
|
기호의 oemSymbolId 값을 검색합니다. |
|
기호 위치의 오프셋을 검색합니다. |
|
최적화 된 코드는 함수 또는 레이블 포함 되어 있는지 여부를 나타내는 플래그를 검색으로 정보를 디버그도. |
|
사용자 정의 데이터 형식에 오버로드 된 생성자가 있는지 여부를 나타내는 플래그를 검색합니다. |
|
사용자 정의 데이터 형식이 packed인지 여부를 나타내는 플래그를 검색합니다. |
|
프로그램이나 컴파일이 컴파일 된 플랫폼 형식을 검색합니다. |
|
함수가 순수 가상 함수인지 여부를 나타내는 플래그를 검색합니다. |
|
FORTRAN 다차원 배열의 순위를 검색합니다. |
|
포인터 형식이 참조인지 여부를 나타내는 플래그를 검색합니다. |
|
레지스터 디자이너의 위치를 검색합니다. |
|
레지스터 형식을 검색합니다. |
|
위치의 RVA(상대 가상 주소)를 검색합니다. |
|
지정 여부는 this 포인터는 플래그가 지정으로 제한 합니다. |
|
샘플러 슬롯을 검색합니다. |
|
사용자 정의 데이터 형식을 비 전역 어휘 범위에서 표시할지 여부를 나타내는 플래그를 검색합니다. |
|
기호의 시그니처 값을 검색합니다. |
|
사용자 정의 형식의 멤버를 검색합니다. |
|
레지스터 디자이너의 위치를 검색합니다. |
|
소스 파일의 파일 이름을 검색합니다. |
|
지정 된 사용자 정의 형식이 정의 된 위치를 나타내는 소스 파일 및 줄 번호를 검색 합니다. |
|
Stride는 행렬 또는 strided 배열의 검색합니다. |
|
하위 형식을 검색합니다. |
|
하위 유형 ID를 검색합니다. |
|
기호가 로드된 파일의 이름을 검색합니다. |
|
고유 기호 식별자를 검색합니다. |
|
기호 형식 분류자를 검색합니다. |
|
썽크 대상의 오프셋 섹션을 검색합니다. |
|
썽크 대상의 RVA(상대 가상 주소)를 검색합니다. |
|
썽크 대상의 주소 섹션을 검색합니다. |
|
썽크 대상의 VA(가상 주소)를 검색합니다. |
|
질감 슬롯을 검색합니다. |
|
메서드에 대한 논리적인 this 조정자를 검색합니다. |
|
함수의 썽크 형식을 검색합니다. |
|
숨겨진 실행 파일의 타임스탬프를 검색합니다. |
|
관리되는 함수 또는 변수의 메타 데이터 토큰을 검색합니다. |
|
함수 시그니처에 대한 참조를 검색합니다. |
|
기호의 형식 식별자를 검색합니다.. |
|
이 기호에 대한 컴파일러 전용 형식 값의 배열을 기호를 검색합니다. |
|
이 기호에 대한 컴파일러 전용 형식 식별자 값의 배열을 기호를 검색합니다. |
|
Uav 슬롯을 검색합니다. |
|
다양한 UDT(사용자 정의 형식)을 검색합니다. |
|
사용자 정의 데이터 형식이 unaligned인지 여부를 나타내는 플래그를 검색합니다. |
|
C++ 장식된 이름 또는 링크에 대한 데코레이팅 되지 않은 이름을 검색합니다. |
|
확장 필드 값을 기반으로 데코레이팅되지 않은 이름을 검색하는 get_undecoratedName 메서드의 확장입니다. |
|
원래 (수정 되지 않은) 형식의 ID를 검색합니다. |
|
FORTRAN 배열 차원의 상한 값을 검색합니다. |
|
FORTRAN 배열 차원의 상한을 나타내는 기호 식별자를 검색합니다. |
|
상수 값을 검색합니다. |
|
함수가 가상인지 여부를 나타내는 플래그를 검색합니다. |
|
위치의 VA(가상 주소)를 검색합니다. |
|
사용자 정의 데이터 형식에 가상 기본 클래스가 있는지 여부를 나타내는 플래그를 검색합니다. |
|
가상 기본 치환 테이블에 대한 인덱스를 검색합니다. |
|
가상 함수의 가상 함수 테이블에서 오프셋을 검색합니다. |
|
가상 기본 포인터의 오프셋을 검색합니다. |
|
가상 기본 테이블 포인터의 형식을 검색합니다. |
|
사용자 정의 유형에 대한 가상 테이블 형식의 기호 인터페이스를 검색합니다. |
|
기호의 가상 테이블 셰이프 식별자를 검색합니다. |
|
사용자 정의 데이터 형식이 volatile인지 여부를 나타내는 플래그를 검색합니다. |
설명
호출자를 위한 정보
다음 메서드 중 하나를 호출하여 이 인터페이스를 가져옵니다.
예제
이 예는 주어진 상대 가상 어드레스에서 함수에 대한 지역 변수를 나타내는 방법을 보여줍니다. 다른 유형의 기호가 서로 관련된 방식도 보여줍니다.
[!참고]
CDiaBSTR는 BSTR를 래핑하고 인스턴스화가 범위를 벗어날 때 문자열 해제를 자동으로 처리하는 클래스입니다.
void DumpLocalVars( DWORD rva, IDiaSession *pSession )
{
CComPtr< IDiaSymbol > pBlock;
if ( FAILED( psession->findSymbolByRVA( rva, SymTagBlock, &pBlock ) ) )
{
Fatal( "Failed to find symbols by RVA" );
}
CComPtr< IDiaSymbol > pscope;
for ( ; pBlock != NULL; )
{
CComPtr< IDiaEnumSymbols > pEnum;
// local data search
if ( FAILED( pBlock->findChildren( SymTagNull, NULL, nsNone, &pEnum ) ) )
{
Fatal( "Local scope findChildren failed" );
}
CComPtr< IDiaSymbol > pSymbol;
DWORD tag;
DWORD celt;
while ( pEnum != NULL &&
SUCCEEDED( pEnum->Next( 1, &pSymbol, &celt ) ) &&
celt == 1)
{
pSymbol->get_symTag( &tag );
if ( tag == SymTagData )
{
CDiaBSTR name;
DWORD kind;
pSymbol->get_name( &name );
pSymbol->get_dataKind( &kind );
if ( name != NULL )
wprintf_s( L"\t%s (%s)\n", name, szDataKinds[ kind ] );
}
else if ( tag == SymTagAnnotation )
{
CComPtr< IDiaEnumSymbols > pValues;
// local data search
wprintf_s( L"\tAnnotation:\n" );
if ( FAILED( pSymbol->findChildren( SymTagNull, NULL, nsNone, &pValues ) ) )
Fatal( "Annotation findChildren failed" );
pSymbol = NULL;
while ( pValues != NULL &&
SUCCEEDED( pValues->Next( 1, &pSymbol, &celt ) ) &&
celt == 1 )
{
CComVariant value;
if ( pSymbol->get_value( &value ) != S_OK )
Fatal( "No value for annotation data." );
wprintf_s( L"\t\t%ws\n", value.bstrVal );
pSymbol = NULL;
}
}
pSymbol = NULL;
}
pBlock->get_symTag( &tag );
if ( tag == SymTagFunction ) // stop when at function scope
break;
// move to lexical parent
CComPtr< IDiaSymbol > pParent;
if ( SUCCEEDED( pBlock->get_lexicalParent( &pParent ) )
&& pParent != NULL ) {
pBlock = pParent;
}
else
{
Fatal( "Finding lexical parent failed." );
}
};
}
요구 사항
Header: Dia2.h
라이브러리: diaguids.lib
DLL: msdia80.dll