структура 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
Этот элемент может быть одним или несколькими из следующих значений.
Ценность | Значение |
---|---|
|
Символ является маркером СРЕДЫ CLR. |
|
Символ является константой. |
|
Символ из таблицы экспорта. |
|
Символ — это средство пересылки. |
|
Смещения являются относительными кадрами. |
|
Символ является известной функцией. |
|
Адрес символа — это смещение относительно начала промежуточного блока языка. Это относится только к управляемому коду. |
|
Символ является локальной переменной. |
|
Символ управляет метаданными. |
|
Символ является параметром. |
|
Символ является регистром. Используется элемент регистрации |
|
Смещения являются относительными. |
|
Символ — это слот управляемого кода. |
|
Символ является thunk. |
|
Символ является смещением в область данных TLS. |
|
Используется элемент значения |
|
Символ — это виртуальный символ, созданный функцией SymAddSymbol. |
Value
Значение константы.
Address
Виртуальный адрес начала символа.
Register
Регистрация.
Scope
Область DIA. Дополнительные сведения см. в пакете SDK для доступа к интерфейсу отладки в документации по Visual Studio. (Этот ресурс может быть недоступен на некоторых языках
и страны.)
Tag
Классификация PDB. Эти значения определены в Dbghelp.h в типе перечисления SymTagEnum.
NameLen
Длина имени в символах, не включая символ, завершающий значение NULL.
MaxNameLen
Размер буфера имени
Name[1]
Имя символа. Имя можно отменить, если параметр SYMOPT_UNDNAME используется с функцией SymSetOptions.
Замечания
Заметка
Заголовок dbghelp.h определяет SYMBOL_INFO как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
заголовка | dbghelp.h |
распространяемый | DbgHelp.dll 5.1 или более поздней версии |