Поделиться через


структура SYMBOL_INFOW (dbghelp.h)

Содержит сведения о символах.

Синтаксис

typedef struct _SYMBOL_INFOW {
  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;
  WCHAR   Name[1];
} SYMBOL_INFOW, *PSYMBOL_INFOW;

Члены

SizeOfStruct

Размер структуры в байтах. Этот элемент должен иметь значение sizeof(SYMBOL_INFO). Обратите внимание, что общий размер данных — это SizeOfStruct + (MaxNameLen - 1) * sizeof(TCHAR). Причина вычитания одного из них заключается в том, что первый символ в имени учитывается в размере структуры.

TypeIndex

Уникальное значение, определяющее данные типа, описывающие символ. Это значение не сохраняется между сеансами.

Reserved[2]

Этот элемент зарезервирован для использования системы.

Index

Уникальное значение символа. Значение, связанное с символом, не гарантируется одинаковым при каждом запуске процесса.

Для символов PDB значение индекса для символа не создается, пока символ не перечисляется или извлекается с помощью поиска по имени или адресу. Значения индекса для всех символов CodeView и COFF создаются при загрузке символов.

Size

Размер символа в байтах. Это значение имеет смысл только в том случае, если символы модуля из PDB-файла; в противном случае это значение обычно равно нулю и должно игнорироваться.

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
Символ является регистром. Используется элемент регистрации .
SYMFLAG_REGREL
0x00000010
Смещения являются относительными.
SYMFLAG_SLOT
0x00008000
Символ — это слот управляемого кода.
SYMFLAG_THUNK
0x00002000
Символ является thunk.
SYMFLAG_TLSREL
0x00004000
Символ является смещением в область данных TLS.
SYMFLAG_VALUEPRESENT
0x00000001
Используется элемент значения .
SYMFLAG_VIRTUAL
0x00001000
Символ — это виртуальный символ, созданный функцией SymAddSymbol.

Value

Значение константы.

Address

Виртуальный адрес начала символа.

Register

Регистрация.

Scope

Область DIA. Дополнительные сведения см. в пакете SDK для доступа к интерфейсу отладки в документации по Visual Studio. (Этот ресурс может быть недоступен на некоторых языках

и страны.)

Tag

Классификация PDB. Эти значения определены в Dbghelp.h в типе перечисления SymTagEnum.

NameLen

Длина имени в символах, не включая символ, завершающий значение NULL.

MaxNameLen

Размер буфера имени в символах. Если этот элемент равен 0, элемент Name не используется.

Name[1]

Имя символа. Имя можно отменить, если параметр SYMOPT_UNDNAME используется с функцией SymSetOptions.

Замечания

Заметка

Заголовок dbghelp.h определяет SYMBOL_INFO как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
заголовка dbghelp.h
распространяемый DbgHelp.dll 5.1 или более поздней версии

См. также

SymEnumSymbolsProc

SymFromAddr

SymFromName

SymGetTypeFromName