IDiaSymbol
기호 인스턴스의 속성을 설명합니다.
구문
IDiaSymbol : IUnknown
메서드(사전순 정렬)
다음 표에서는 IDiaSymbol
메서드를 보여 줍니다.
참고 항목
기호는 기호의 형식에 따라 이러한 메서드 중 일부에 대해서만 유의미한 데이터를 반환합니다. 메서드가 S_OK
를 반환하는 경우 해당 메서드는 유의미한 데이터를 반환합니다.
메서드 | 설명 |
---|---|
IDiaSymbol::findChildren | 기호의 모든 자식을 검색합니다. |
IDiaSymbol::findChildrenEx | 기호의 자식을 검색합니다. 이 메서드는 IDiaSymbol::findChildren의 확장 버전입니다. |
IDiaSymbol::findChildrenExByAddr | 지정된 주소에서 유효한 기호의 자식을 검색합니다. |
IDiaSymbol::findChildrenExByRVA | 지정된 RVA(상대 가상 주소)에서 유효한 기호의 자식을 검색합니다. |
IDiaSymbol::findChildrenExByVA | 지정된 가상 주소에서 유효한 기호 자식을 검색합니다. |
IDiaSymbol::findInlineFramesByAddr | 클라이언트가 지정된 주소의 모든 인라인 프레임에서 반복될 수 있게 하는 열거형을 검색합니다. |
IDiaSymbol::findInlineFramesByRVA | 클라이언트가 지정된 RVA(상대 가상 주소)의 모든 인라인 프레임에서 반복될 수 있게 하는 열거형을 검색합니다. |
IDiaSymbol::findInlineFramesByVA | 클라이언트가 지정된 VA(가상 주소)의 모든 인라인 프레임에서 반복될 수 있게 하는 열거형을 검색합니다. |
IDiaSymbol::findInlineeLines | 클라이언트가 기호에서 직접 또는 간접적으로 인라인된 모든 함수의 줄 번호 정보를 반복할 수 있도록 하는 열거형을 검색합니다. |
IDiaSymbol::findInlineeLinesByAddr | 클라이언트가 지정된 주소 범위 기호에서 직간접적으로 인라인된 모든 함수의 줄 번호 정보를 반복할 수 있게 하는 열거형을 검색합니다. |
IDiaSymbol::findInlineeLinesByRVA | 직간접적으로 인라인되었으며 지정된 RVA(상대 가상 주소) 기회의 모든 함수의 줄 번호 정보를 클라이언트에서 반복할 수 있게 하는 열거형을 검색합니다. |
IDiaSymbol::findInlineeLinesByVA | 직간접적으로 인라인되었으며 지정된 VA(가상 주소) 기회의 모든 함수의 줄 번호 정보를 클라이언트에서 반복할 수 있게 하는 열거형을 검색합니다. |
IDiaSymbol::findSymbolsByRVAForAcceleratorPointerTag | 해당하는 태그 값이 지정되면 이 메서드는 지정된 상대 가상 주소의 이 스텁 함수에 포함된 기호의 열거형을 반환합니다. |
IDiaSymbol::findSymbolsForAcceleratorPointerTag | C++ AMP 스텁 함수 내 액셀러레이터 포인터 태그의 수를 반환합니다. |
IDiaSymbol::get_acceleratorPointerTags | C++ AMP 액셀러레이터 키 스텁 함수에 해당하는 모든 액셀러레이터 포인터 태그 값을 반환합니다. |
IDiaSymbol::get_access | 클래스 멤버의 액세스 한정자를 검색합니다. |
IDiaSymbol::get_addressOffset | 주소 위치의 오프셋 부분을 검색합니다. |
IDiaSymbol::get_addressSection | 주소 위치의 섹션 부분을 검색합니다. |
IDiaSymbol::get_addressTaken | 다른 기호가 이 주소를 참조하는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_age | 프로그램 데이터베이스의 나이 값을 검색합니다. |
IDiaSymbol::get_arrayIndexType | 배열 인덱스 형식의 기호 식별자를 검색합니다. |
IDiaSymbol::get_arrayIndexTypeId | 기호의 배열 인덱스 형식 식별자를 검색합니다. |
IDiaSymbol::get_backEndMajor | 백 엔드 주 버전 번호를 검색합니다. |
IDiaSymbol::get_backEndMinor | 백 엔드 부 버전 번호를 검색합니다. |
IDiaSymbol::get_backEndBuild | 백 엔드 빌드 번호를 검색합니다. |
IDiaSymbol::get_baseDataOffset | 베이스 데이터 오프셋을 검색합니다. |
IDiaSymbol::get_baseDataSlot | 기본 데이터 슬롯을 검색합니다. |
IDiaSymbol::get_baseSymbol | 포인터의 기반이 되는 기호를 검색합니다. |
IDiaSymbol::get_baseSymbolId | 포인터의 기반이 되는 기호 ID를 검색합니다. |
IDiaSymbol::get_baseType | 기본 형식의 형식 태그를 검색합니다. |
IDiaSymbol::get_bitPosition | 위치의 비트 위치를 검색합니다. |
IDiaSymbol::get_builtInKind | HLSL 형식의 기본 제공 종류를 검색합니다. |
IDiaSymbol::get_callingConvention | 메서드의 호출 규칙에 대한 표시기를 반환합니다. |
IDiaSymbol::get_classParent | 기호의 클래스 부모에 대한 참조를 검색합니다. |
IDiaSymbol::get_classParentId | 기호의 클래스 부모 식별자를 검색합니다. |
IDiaSymbol::get_code | 기호가 코드 주소를 참조하는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_compilerGenerated | 기호가 컴파일러에서 생성되었는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_compilerName | 컴파일 대상을 만드는 데 사용되는 컴파일러의 이름을 검색합니다. |
IDiaSymbol::get_constructor | 사용자 정의 데이터 형식에 생성자가 있는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_container | 이 기호의 포함하는 기호를 검색합니다. |
IDiaSymbol::get_constType | 사용자 정의 데이터 형식이 상수인지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_count | 목록 또는 배열의 항목 수를 검색합니다. |
IDiaSymbol::get_countLiveRanges | 로컬 기호와 연결된 유효한 주소 범위 수를 검색합니다. |
IDiaSymbol::get_customCallingConvention | 함수가 사용자 지정 호출 규칙을 사용하는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_dataBytes | OEM 기호의 데이터 바이트를 검색합니다. |
IDiaSymbol::get_dataKind | 데이터 기호의 변수 분류를 검색합니다. |
IDiaSymbol::get_editAndContinueEnabled | 컴파일된 프로그램 또는 단위의 편집하며 계속하기 기능을 설명하는 플래그를 검색합니다. |
IDiaSymbol::get_farReturn | 함수가 far 반환을 사용하는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_frontEndMajor | 프런트 엔드 주 버전 번호를 검색합니다. |
IDiaSymbol::get_frontEndMinor | 프런트 엔드 부 버전 번호를 검색합니다. |
IDiaSymbol::get_frontEndBuild | 프런트 엔드 빌드 번호를 검색합니다. |
IDiaSymbol::get_function | 공용 기호가 함수를 참조하는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_guid | 기호의 GUID를 검색합니다. |
IDiaSymbol::get_hasAlloca | 함수에 alloca 호출이 포함되는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_hasAssignmentOperator | 사용자 정의 데이터 형식에 대입 연산자가 정의되어 있는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_hasCastOperator | 사용자 정의 데이터 형식에 캐스트 연산자가 정의되어 있는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_hasDebugInfo | 컴파일 대상에 디버깅 정보가 포함되어 있는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_hasEH | 함수에 C++ 스타일 예외 처리기가 있는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_hasEHa | 함수에 비동기 예외 처리기가 있는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_hasInlAsm | 함수에 인라인 어셈블리가 있는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_hasLongJump | 함수에 longjmp 명령(C 스타일 예외 처리의 일부)이 포함되어 있는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_hasManagedCode | 모듈에 관리 코드가 포함되어 있는지를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_hasNestedTypes | 사용자 정의 데이터 형식에 중첩 형식 정의가 있는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_hasSecurityChecks | 함수 또는 컴파일 대상에 (/GS(버퍼 보안 검사) 컴파일러 스위치를 통해) 컴파일된 보안 검사가 있는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_hasSEH | 함수에 Win32 스타일 구조적 예외 처리가 있는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_hasSetJump | 함수에 setjmp 명령이 포함되는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_indirectVirtualBaseClass | 사용자 정의 데이터 형식이 간접 가상 기본 클래스인지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_InlSpec | 함수가 인라인 특성으로 표시되었는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_interruptReturn | 함수에 인터럽트 명령의 반환이 있는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_intro | 함수가 기본 클래스 가상 함수인지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_isAcceleratorGroupSharedLocal | 기호가 C++ AMP 액셀러레이터에 대해 컴파일된 코드에서 그룹 공유 지역 변수에 해당하는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_isAcceleratorPointerTagLiveRange | 기호가 C++ AMP 가속기용으로 컴파일된 코드에 있는 포인터 변수의 태그 구성 요소에 대한 ‘정의 범위 기호’에 해당하는지 여부를 나타내는 플래그를 검색합니다. 정의 범위 기호는 주소의 범위에 대한 변수의 위치입니다. |
IDiaSymbol::get_isAcceleratorStubFunction | 기호가 parallel_for_each 호출에 해당하는 액셀러레이터에 대해 컴파일된 셰이더의 최상위 함수 기호에 해당하는지 여부를 나타냅니다. |
IDiaSymbol::get_isAggregated | 데이터가 많은 기호 집계의 일부인지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_isCTypes | 기호 파일에 C 형식이 포함되어 있는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_isCVTCIL | 모듈이 CIL(공용 중간 언어)에서 네이티브 코드로 변환되었는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_isDataAligned | 사용자 정의 데이터 형식의 요소가 특정 경계에 정렬되는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_isHLSLData | 이 기호가 HLSL(High Level Shader Language) 데이터를 나타내는지 여부를 지정합니다. |
IDiaSymbol::get_isHotpatchable | 모듈이 /hotpatch(핫패치 가능 이미지 만들기) 컴파일러 스위치를 사용하여 컴파일되었는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_isLTCG | 관리 컴파일 대상이 링커의 LTCG가 연결되었는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_isMatrixRowMajor | 행렬이 행 중심인지 여부를 지정합니다. |
IDiaSymbol::get_isMSILNetmodule | 관리 컴파일 대상이 .netmodule(메타데이터만 포함)인지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_isMultipleInheritance | this 포인터가 여러 상속을 가진 데이터 멤버를 가리키는지 여부를 지정합니다. |
IDiaSymbol::get_isNaked | 함수에 naked 특성이 있는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_isOptimizedAway | 변수가 최적화되어 있는지 여부를 지정합니다. |
IDiaSymbol::get_isPointerBasedOnSymbolValue | this 포인터가 기호 값을 기반으로 하는지 여부를 지정합니다. |
IDiaSymbol::get_isPointerToDataMember | 이 기호가 데이터 멤버에 대한 포인터인지 여부를 지정합니다. |
IDiaSymbol::get_isPointerToMemberFunction | 이 기호가 멤버 함수에 대한 포인터인지 여부를 지정합니다. |
IDiaSymbol::get_isReturnValue | 변수가 반환 값을 전달하는지 여부를 지정합니다. |
IDiaSymbol::get_isSdl | 모듈이 /SDL 옵션으로 컴파일되는지 여부를 지정합니다. |
IDiaSymbol::get_isSingleInheritance | this 포인터가 단일 상속을 가진 데이터 멤버를 가리키는지 여부를 지정합니다. |
IDiaSymbol::get_isSplitted | 데이터가 개별 기호의 집계로 분할되었는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_isStatic | 함수 또는 썽크 레이어가 정적인지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_isStripped | 비공개 기호가 기호 파일에서 제거되었는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_isVirtualInheritance | this 포인터가 가상 상속을 가진 데이터 멤버를 가리키는지 여부를 지정합니다. |
IDiaSymbol::get_language | 소스의 언어를 검색합니다. |
IDiaSymbol::get_length | 이 기호가 나타내는 개체에서 사용하는 메모리의 바이트 수를 검색합니다. |
IDiaSymbol::get_lexicalParent | 기호의 어휘 부모에 대한 참조를 검색합니다. |
IDiaSymbol::get_lexicalParentId | 기호의 어휘 부모 식별자를 검색합니다. |
IDiaSymbol::get_libraryName | 개체가 로드된 라이브러리 또는 개체 파일의 파일 이름을 검색합니다. |
IDiaSymbol::get_liveRangeLength | 로컬 기호가 유효한 주소 범위의 길이를 반환합니다. |
IDiaSymbol::get_liveRangeStartAddressSection | 로컬 기호가 유효한 시작 주소 범위의 섹션 파트를 반환합니다. |
IDiaSymbol::get_liveRangeStartAddressOffset | 로컬 기호가 유효한 시작 주소 범위의 오프셋 파트를 반환합니다. |
IDiaSymbol::get_liveRangeStartRelativeVirtualAddress | 로컬 기호가 유효한 주소 범위의 시작을 반환합니다. |
IDiaSymbol::get_locationType | 데이터 기호의 위치 유형을 검색합니다. |
IDiaSymbol::get_lowerBound | Fortran 배열 차원의 하한을 검색합니다. |
IDiaSymbol::get_lowerBoundId | FORTRAN 배열 차원의 하한에 대한 기호 식별자를 검색합니다. |
IDiaSymbol::get_machineType | 대상 CPU 종류를 검색합니다. |
IDiaSymbol::get_managed | 기호가 관리 코드를 참조하는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_memorySpaceKind | 메모리 공간 종류를 검색합니다. |
IDiaSymbol::get_msil | 기호가 MSIL(Microsoft Intermediate Language) 코드를 참조하는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_name | 기호의 이름을 검색합니다. |
IDiaSymbol::get_nested | 사용자 정의 데이터 형식이 중첩인지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_noInline | 함수가 noinline 특성으로 표시되었는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_noReturn | 함수가 noreturn 특성으로 선언되었는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_noStackOrdering | 스택 버퍼 검사의 일부로 스택 순서 지정을 수행할 수 없는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_notReached | 함수 또는 레이블에 도달하지 않는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_numberOfAcceleratorPointerTags | C++ AMP 스텁 함수 내 액셀러레이터 포인터 태그의 수를 반환합니다. |
IDiaSymbol::get_numberOfModifiers | 원래 형식에 적용되는 한정자 수를 검색합니다. |
IDiaSymbol::get_numberOfRegisterIndices | 레지스터 인덱스 수를 검색합니다. |
IDiaSymbol::get_numberOfRows | 행렬의 행 수를 검색합니다. |
IDiaSymbol::get_numberOfColumns | 행렬의 열 수를 검색합니다. |
IDiaSymbol::get_objectFileName | 개체 파일 이름을 검색합니다. |
IDiaSymbol::get_objectPointerType | 클래스 메서드에 대한 개체 포인터의 형식을 검색합니다. |
IDiaSymbol::get_oemId | 기호의 oemId 값을 검색합니다. |
IDiaSymbol::get_oemSymbolId | 기호의 oemSymbolId 값을 검색합니다. |
IDiaSymbol::get_offset | 기호 위치의 오프셋을 검색합니다. |
IDiaSymbol::get_optimizedCodeDebugInfo | 함수 또는 레이블에 최적화된 코드와 디버그 정보가 포함되어 있는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_overloadedOperator | 사용자 정의 데이터 형식에 오버로드된 연산자가 있는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_packed | 사용자 정의 데이터 형식이 압축되어 있는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_platform | 프로그램 또는 컴파일 대상이 컴파일된 플랫폼 형식을 검색합니다. |
IDiaSymbol::get_pure | 함수가 순수 가상인지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_rank | FORTRAN 다차원 배열의 순위를 검색합니다. |
IDiaSymbol::get_reference | 포인터 형식이 참조인지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_registerId | 위치의 레지스터 지정자를 검색합니다. |
IDiaSymbol::get_registerType | 레지스터 형식을 검색합니다. |
IDiaSymbol::get_relativeVirtualAddress | 위치의 RVA(상대 가상 주소)를 검색합니다. |
IDiaSymbol::get_restrictedType | this 포인터가 제한된 것으로 플래그 지정되었는지 여부를 지정합니다. |
IDiaSymbol::get_samplerSlot | 샘플러 슬롯을 검색합니다. |
IDiaSymbol::get_scoped | 사용자 정의 데이터 형식이 비전역 어휘 범위에 표시되는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_signature | 기호의 시그니처 값을 검색합니다. |
IDiaSymbol::get_sizeInUdt | 사용자 정의 형식의 멤버 크기를 검색합니다. |
IDiaSymbol::get_slot | 위치의 슬롯 번호를 검색합니다. |
IDiaSymbol::get_sourceFileName | 원본 파일의 파일 이름을 검색합니다. |
IDiaSymbol::getSrcLineOnTypeDefn | 지정된 사용자 정의 형식이 정의된 위치를 나타내는 소스 파일과 줄 번호를 검색합니다. |
IDiaSymbol::get_stride | 행렬 또는 stride 배열의 stride를 검색합니다. |
IDiaSymbol::get_subType | 하위 형식을 검색합니다. |
IDiaSymbol::get_subTypeId | 하위 형식 ID를 검색합니다. |
IDiaSymbol::get_symbolsFileName | 기호가 로드된 파일의 이름을 검색합니다. |
IDiaSymbol::get_symIndexId | 고유 기호 식별자를 검색합니다. |
IDiaSymbol::get_symTag | 기호 형식 분류자를 검색합니다. |
IDiaSymbol::get_targetOffset | 썽크 대상의 오프셋 섹션을 검색합니다. |
IDiaSymbol::get_targetRelativeVirtualAddress | 썽크 대상의 RVA(상대 가상 주소)를 검색합니다. |
IDiaSymbol::get_targetSection | 썽크 대상의 주소 섹션을 검색합니다. |
IDiaSymbol::get_targetVirtualAddress | 썽크 대상의 VA(가상 주소)를 검색합니다. |
IDiaSymbol::get_textureSlot | 텍스처 슬롯을 검색합니다. |
IDiaSymbol::get_thisAdjust | 메서드에 대한 논리적 this 조정자를 검색합니다. |
IDiaSymbol::get_thunkOrdinal | 함수의 썽크 형식을 검색합니다. |
IDiaSymbol::get_timeStamp | 기본 실행 파일의 타임스탬프를 검색합니다. |
IDiaSymbol::get_token | 관리형 함수 또는 변수의 메타데이터 토큰을 검색합니다. |
IDiaSymbol::get_type | 함수 시그니처에 대한 참조를 검색합니다. |
IDiaSymbol::get_typeId | 기호의 형식 식별자를 검색합니다. |
IDiaSymbol::get_types | 이 기호에 대한 컴파일러별 형식 값의 배열을 검색합니다. |
IDiaSymbol::get_typeIds | 이 기호에 대한 컴파일러별 형식 식별자 값의 배열을 검색합니다. |
IDiaSymbol::get_uavSlot | UAV 슬롯을 검색합니다. |
IDiaSymbol::get_udtKind | 다양한 UDT(사용자 정의 형식)를 검색합니다. |
IDiaSymbol::get_unalignedType | 사용자 정의 데이터 형식이 정렬되지 않았는지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_undecoratedName | C++ 데코레이트 또는 연결 이름에 대해 데코레이트되지 않은 이름을 검색합니다. |
IDiaSymbol::get_undecoratedNameEx | 확장 필드의 값을 기반으로 데코레이트되지 않은 이름을 검색하는 get_undecoratedName 메서드의 확장입니다. |
IDiaSymbol::get_unmodifiedTypeId | 원래(수정되지 않은) 형식의 ID를 검색합니다. |
IDiaSymbol::get_upperBound | FORTRAN 배열 차원의 상한을 검색합니다. |
IDiaSymbol::get_upperBoundId | FORTRAN 배열 차원의 상한에 대한 기호 식별자를 검색합니다. |
IDiaSymbol::get_value | 상수 값을 검색합니다. |
IDiaSymbol::get_virtual | 함수가 가상인지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_virtualAddress | 위치의 VA(가상 주소)를 검색합니다. |
IDiaSymbol::get_virtualBaseClass | 사용자 정의 데이터 형식이 가상 기본 클래스인지 여부를 나타내는 플래그를 검색합니다. |
IDiaSymbol::get_virtualBaseDispIndex | 가상 기본 치환 테이블의 인덱스를 검색합니다. |
IDiaSymbol::get_virtualBaseOffset | 가상 함수의 가상 함수 테이블에서 오프셋을 검색합니다. |
IDiaSymbol::get_virtualBasePointerOffset | 가상 기본 포인터의 오프셋을 검색합니다. |
IDiaSymbol::get_virtualBaseTableType | 가상 기본 테이블 포인터의 형식을 검색합니다. |
IDiaSymbol::get_virtualTableShape | 사용자 정의 형식에 대한 가상 표 형식의 기호 인터페이스를 검색합니다. |
IDiaSymbol::get_virtualTableShapeId | 기호의 가상 표 도형 식별자를 검색합니다. |
IDiaSymbol::get_volatileType | 사용자 정의 데이터 형식이 휘발성인지 여부를 나타내는 플래그를 검색합니다. |
설명
호출자 참고 사항
다음 메서드 중 하나를 호출하여 이 인터페이스를 가져옵니다.
예시
이 예제에서는 지정된 상대 가상 주소에서 함수에 대한 지역 변수를 표시하는 방법을 보여 줍니다. 또한 서로 다른 형식의 기호가 서로 어떻게 관련되어 있는지도 보여 줍니다.
참고 항목
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