структура 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-файлу; В противном случае это значение обычно равно нулю, и его следует игнорировать.
ModBase
Базовый адрес модуля, содержащего символ.
Flags
Этот элемент может иметь одно или несколько из следующих значений.
Значение | Значение |
---|---|
|
Символ является токеном CLR. |
|
Символ является константой. |
|
Символ из таблицы экспорта. |
|
Символом является сервер пересылки. |
|
Смещения являются относительными для кадра. |
|
Символ является известной функцией. |
|
Адрес символа является смещением относительно начала промежуточного языкового блока. Это относится только к управляемому коду. |
|
Символ является локальной переменной. |
|
Символ — это управляемые метаданные. |
|
Символ является параметром. |
|
Символом является регистр. Используется элемент Register . |
|
Смещения являются относительными по регистру. |
|
Символ — это слот управляемого кода. |
|
Символом является ломка. |
|
Символ представляет собой смещение в области данных TLS. |
|
Используется элемент Value . |
|
Символ — это виртуальный символ, созданный функцией 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 |
Распространяемые компоненты | DbgHelp.dll 5.1 или более поздней версии |