SYMBOL_INFO 구조체(dbghelp.h)

기호 정보를 포함합니다.

구문

typedef struct _SYMBOL_INFO {
  ULONG   SizeOfStruct;
  ULONG   TypeIndex;
  ULONG64 Reserved[2];
  ULONG   Index;
  ULONG   Size;
  ULONG64 ModBase;
  ULONG   Flags;
  ULONG64 Value;
  ULONG64 Address;
  ULONG   Register;
  ULONG   Scope;
  ULONG   Tag;
  ULONG   NameLen;
  ULONG   MaxNameLen;
  CHAR    Name[1];
} SYMBOL_INFO, *PSYMBOL_INFO;

멤버

SizeOfStruct

구조체의 크기(바이트)입니다. 이 멤버는 로 sizeof(SYMBOL_INFO)설정해야 합니다. 데이터의 총 크기는 입니다 SizeOfStruct + (MaxNameLen - 1) * sizeof(TCHAR). 하나를 빼는 이유는 이름의 첫 번째 문자가 구조체의 크기로 고려되기 때문입니다.

TypeIndex

기호를 설명하는 형식 데이터를 식별하는 고유 값입니다. 이 값은 세션 간에 유지되지 않습니다.

Reserved[2]

이 멤버는 시스템 사용을 위해 예약되어 있습니다.

Index

기호의 고유 값입니다. 기호와 연결된 값은 프로세스를 실행할 때마다 동일하지 않습니다.

PDB 기호의 경우 기호가 이름 또는 주소별로 검색을 통해 열거되거나 검색될 때까지 기호의 인덱스 값이 생성되지 않습니다. 모든 CodeView 및 COFF 기호의 인덱스 값은 기호가 로드될 때 생성됩니다.

Size

기호 크기(바이트 또는 기호가 비트 필드 멤버인 경우 비트)입니다.

이 값은 모듈 기호가 pdb 파일에서 온 경우에만 의미가 있습니다. 그렇지 않으면 이 값은 일반적으로 0이며 무시해야 합니다.

ModBase

기호를 포함하는 모듈의 기본 주소입니다.

Flags

이 멤버는 다음 값 중 하나 이상일 수 있습니다.

의미
SYMFLAG_CLR_TOKEN
0x00040000
기호는 CLR 토큰입니다.
SYMFLAG_CONSTANT
0x00000100
기호는 상수입니다.
SYMFLAG_EXPORT
0x00000200
기호는 내보내기 테이블의 기호입니다.
SYMFLAG_FORWARDER
0x00000400
기호는 전달자입니다.
SYMFLAG_FRAMEREL
0x00000020
오프셋은 프레임 상대입니다.
SYMFLAG_FUNCTION
0x00000800
기호는 알려진 함수입니다.
SYMFLAG_ILREL
0x00010000
기호 주소는 중간 언어 블록의 시작 부분을 기준으로 하는 오프셋입니다. 관리 코드에만 적용됩니다.
SYMFLAG_LOCAL
0x00000080
기호는 지역 변수입니다.
SYMFLAG_METADATA
0x00020000
기호는 관리되는 메타데이터입니다.
SYMFLAG_PARAMETER
0x00000040
기호는 매개 변수입니다.
SYMFLAG_REGISTER
0x00000008
기호는 레지스터입니다. Register 멤버가 사용됩니다.
SYMFLAG_REGREL
0x00000010
오프셋은 레지스터 상대입니다.
SYMFLAG_SLOT
0x00008000
기호는 관리 코드 슬롯입니다.
SYMFLAG_THUNK
0x00002000
기호는 썽크입니다.
SYMFLAG_TLSREL
0x00004000
기호는 TLS 데이터 영역에 대한 오프셋입니다.
SYMFLAG_VALUEPRESENT
0x00000001
Value 멤버가 사용됩니다.
SYMFLAG_VIRTUAL
0x00001000
기호는 SymAddSymbol 함수에서 만든 가상 기호입니다.

Value

상수의 값입니다.

Address

기호 시작의 가상 주소입니다.

Register

레지스터입니다.

Scope

DIA scope. 자세한 내용은 Visual Studio 설명서의 디버그 인터페이스 액세스 SDK 를 참조하세요. (이 리소스는 일부 언어에서 사용할 수 없을 수 있습니다.

및 국가)를 선택합니다.

Tag

PDB 분류입니다. 이러한 값은 SymTagEnum 열거형 형식의 Dbghelp.h에 정의됩니다.

NameLen

null 종료 문자를 포함하지 않는 이름의 길이(문자)입니다.

MaxNameLen

이름 버퍼의 크기(문자)입니다. 이 멤버가 0이면 Name 멤버가 사용되지 않습니다.

Name[1]

기호 이름입니다. SYMOPT_UNDNAME 옵션을 SymSetOptions 함수와 함께 사용하는 경우 이름을 해독할 수 있습니다.

요구 사항

요구 사항
헤더 dbghelp.h
재배포 가능 파일 DbgHelp.dll 5.1 이상

추가 정보

SymEnumSymbolsProc

SymFromAddr

SymFromName

SymGetTypeFromName