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


Функция SymSetOptions (dbghelp.h)

Задает маску параметров.

Синтаксис

DWORD IMAGEAPI SymSetOptions(
  [in] DWORD SymOptions
);

Параметры

[in] SymOptions

Параметры символов. Ноль является допустимым значением и указывает, что все параметры отключены. Значения параметров объединяются с помощью оператора OR для формирования допустимого значения параметров. Допустимы следующие значения.

Значение Значение
SYMOPT_ALLOW_ABSOLUTE_SYMBOLS
0x00000800
Позволяет использовать символы, которые хранятся с абсолютными адресами. Большинство символов хранятся в виде RVA из базы модуля. DbgHelp преобразует их в абсолютные адреса. Существуют символы, которые хранятся в виде абсолютного адреса. Они имеют очень специализированные цели и, как правило, не используются.

DbgHelp 5.1 и более ранних версий: Это значение не поддерживается.

SYMOPT_ALLOW_ZERO_ADDRESS
0x01000000
Позволяет использовать символы без адреса. По умолчанию DbgHelp отфильтровывает символы, у которых нет адреса.
SYMOPT_AUTO_PUBLICS
0x00010000
Не ищите открытые символы при поиске символов по адресу или при перечислении символов, если только они не были найдены в глобальных символах или в текущем область. Этот параметр не влияет на SYMOPT_PUBLICS_ONLY.

DbgHelp 5.1 и более ранних версий: Это значение не поддерживается.

SYMOPT_CASE_INSENSITIVE
0x00000001
Все поиски символов не учитывают регистр.
SYMOPT_DEBUG
0x80000000
Передайте выходные данные отладки через OutputDebugString или функцию обратного вызова SymRegisterCallbackProc64 .
SYMOPT_DEFERRED_LOADS
0x00000004
Символы не загружаются до тех пор, пока не будет сделана ссылка, требующая загрузки символов. Это самый быстрый и эффективный способ использования обработчика символов.
SYMOPT_DISABLE_SYMSRV_AUTODETECT
0x02000000
Отключает автоматическое обнаружение хранилищ на сервере символов в пути к символам даже без обозначения SRV*, обеспечивая совместимость с предыдущим поведением.

DbgHelp 6.6 и более ранних версий: Это значение не поддерживается.

SYMOPT_EXACT_SYMBOLS
0x00000400
Не загружайте несоответвленный PDB-файл. Не загружайте символы экспорта, если все остальные не удается.
SYMOPT_FAIL_CRITICAL_ERRORS
0x00000200
Не отображайте системные диалоговые окна, если произошел сбой мультимедиа, например отсутствие носителя на диске. Вместо этого сбой происходит без уведомления.
SYMOPT_FAVOR_COMPRESSED
0x00800000
Если доступен как несжатый, так и сжатый файл, следует использовать сжатый файл. Этот параметр подходит для медленных подключений.
SYMOPT_FLAT_DIRECTORY
0x00400000
Символы хранятся в корневом каталоге нижестоящего хранилища по умолчанию.

DbgHelp 6.1 и более ранних версий: Это значение не поддерживается.

SYMOPT_IGNORE_CVREC
0x00000080
Игнорируйте сведения о пути в записи CodeView заголовка изображения при загрузке PDB-файла.
SYMOPT_IGNORE_IMAGEDIR
0x00200000
Игнорируйте каталог образа.

DbgHelp 6.1 и более ранних версий: Это значение не поддерживается.

SYMOPT_IGNORE_NT_SYMPATH
0x00001000
Не используйте путь, указанный _NT_SYMBOL_PATH если пользователь вызывает SymSetSearchPath без допустимого пути.

DbgHelp 5.1: Это значение не поддерживается.

SYMOPT_INCLUDE_32BIT_MODULES
0x00002000
При отладке в 64-разрядной версии Windows включите все 32-разрядные модули.
SYMOPT_LOAD_ANYTHING
0x00000040
Отключите проверки, чтобы убедиться, что файл (.exe, .dbg., или PDB) является правильным. Вместо этого загрузите первый файл.
SYMOPT_LOAD_LINES
0x00000010
Загружает сведения о номерах строк.
SYMOPT_NO_CPP
0x00000008
Все символы C++, содержащие разделитель символов "::", заменяются на "__". Этот параметр существует для отладчиков, которые не могут обрабатывать синтаксический анализ имен реальных символов C++.
SYMOPT_NO_IMAGE_SEARCH
0x00020000
Не ищите путь к символам на изображении при загрузке символов для модуля, если заголовок модуля не может быть прочитан.

DbgHelp 5.1: Это значение не поддерживается.

SYMOPT_NO_PROMPTS
0x00080000
Предотвращает запрос на проверку с сервера символов.
SYMOPT_NO_PUBLICS
0x00008000
Не ищите символы в общедоступной таблице. Этот параметр не должен иметь никакого эффекта, так как в глобальной таблице есть копии открытых символов.

DbgHelp 5.1: Это значение не поддерживается.

SYMOPT_NO_UNQUALIFIED_LOADS
0x00000100
Предотвращает загрузку символов, когда вызывающий объект проверяет символы в нескольких модулях. Изучите только модуль, символы которого уже загружены.
SYMOPT_OVERWRITE
0x00100000
Перезаписать хранилище нижнего уровня из хранилища символов.

DbgHelp 6.1 и более ранних версий: Это значение не поддерживается.

SYMOPT_PUBLICS_ONLY
0x00004000
Не используйте частные символы. Версия DbgHelp, поставляемая с более ранним выпуском Windows, поддерживала только открытые символы; Этот параметр обеспечивает совместимость с этим ограничением.

DbgHelp 5.1: Это значение не поддерживается.

SYMOPT_SECURE
0x00040000
DbgHelp не загружает сервер символов, отличный от SymSrv. SymSrv не будет использовать подчиненное хранилище, указанное в _NT_SYMBOL_PATH. После установки этого флага он не может быть снят.

DbgHelp 6.0 и 6.1: Этот флаг можно снять.

DbgHelp 5.1: Это значение не поддерживается.

SYMOPT_UNDNAME
0x00000002
Все символы представлены в некоаном виде.

Этот параметр не влияет на глобальные или локальные символы, так как они хранятся без изменения структуры. Этот параметр применяется только к открытым символам.

Возвращаемое значение

Функция возвращает текущую маску параметров.

Комментарии

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

Чтобы получить текущую маску параметров, вызовите функцию SymGetOptions .

Все функции DbgHelp, такие как эта, являются однопоточными. Поэтому вызовы из нескольких потоков к этой функции, скорее всего, приведут к непредвиденному поведению или повреждению памяти. Чтобы избежать этого, необходимо синхронизировать все параллельные вызовы из нескольких потоков в эту функцию.

Примеры

Пример см. в разделе Инициализация обработчика символов.

Требования

   
Целевая платформа Windows
Header dbghelp.h
Библиотека Dbghelp.lib
DLL Dbghelp.dll
Распространяемые компоненты DbgHelp.dll 5.1 или более поздней версии

См. также раздел

Функции DbgHelp

SymGetOptions