컴파일된 프로그램에 대한 디버그 정보는 DIA(Debug Interface Access) SDK API를 사용하여 액세스할 수 있는 기호로 프로그램 데이터베이스(.pdb) 파일에 저장됩니다. 모든 기호에는 IDiaSymbol::get_symTag 및 IDiaSymbol::get_symIndexId 속성이 있습니다. symTag 속성은 SymTagEnum 열거형에서 정의된 기호 종류를 나타냅니다. symIndexId 속성은 각 기호 인스턴스의 고유 식별자를 포함하는 DWORD 값입니다.
기호에는 기호에 대한 추가 정보뿐 아니라 다른 기호에 대한 참조를 지정할 수 있는 속성(일반적으로 IDiaSymbol::get_lexicalParent 또는 IDiaSymbol::get_classParent)도 있습니다. 참조가 포함된 속성을 쿼리하면 참조가 IDiaSymbol 개체로 반환됩니다. 이 속성은 항상 동일한 이름에 “Id”가 접미사로 추가된 다른 속성(예: IDiaSymbol::get_lexicalParentId 및 IDiaSymbol::get_classParentId)과 쌍을 이룹니다. 기호 위치, 기호 형식의 어휘 계층 구조, 기호 형식의 클래스 계층 구조에 있는 표에서는 다양한 종류의 기호와 관련된 속성을 간략하게 설명합니다. 속성에 다른 기호에 대한 참조나 관련 정보가 포함될 수도 있습니다. *Id 속성은 단순히 관련 속성의 숫자 서수 식별자이므로 자세한 설명에서 생략됩니다. 이 속성은 매개 변수 설명에 필요한 경우에만 참조됩니다.
속성에 액세스할 때 오류가 발생하지 않고 기호 속성에 값이 할당된 경우 속성의 “get” 메서드는 S_OK를 반환합니다. 반환 값이 S_FALSE이면 속성이 현재 기호에 유효하지 않음을 나타냅니다.
섹션 내용
기호에 포함될 수 있는 다양한 위치 종류를 설명합니다.
어휘 계층 구조를 구성하는 파일, 모듈, 함수 등의 기호 형식을 설명합니다.
다양한 언어 요소에 해당하는 클래스, 배열, 함수 반환 형식 등의 기호 형식을 설명합니다.