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


Параметры символов

Существует ряд параметров для управления загрузкой и использованием символов. Эти параметры можно задать различными способами.

В следующей таблице перечислены эти параметры символов:

Flag Имя параметра Значение по умолчанию в отладчике По умолчанию в DBH

0x1

SYMOPT_CASE_INSENSITIVE

Включено

Включено

0x2

SYMOPT_UNDNAME

Включено

Включено

0x4

SYMOPT_DEFERRED_LOADS

С

Выкл.

0x8

SYMOPT_NO_CPP

Выключено

Выключено

0x10

SYMOPT_LOAD_LINES

Выкл. в KD и CDB

Включено в WinDbg

Включено

0x20

SYMOPT_OMAP_FIND_NEAREST

С

Выкл.

0x40

SYMOPT_LOAD_ANYTHING

Выключено

Выключено

0x80

SYMOPT_IGNORE_CVREC

Выключено

Выключено

0x100

SYMOPT_NO_UNQUALIFIED_LOADS

Выключено

Выключено

0x200

SYMOPT_FAIL_CRITICAL_ERRORS

С

Выкл.

0x400

SYMOPT_EXACT_SYMBOLS

Выкл.

С

0x800

SYMOPT_ALLOW_ABSOLUTE_SYMBOLS

Выкл.

С

0x1000

SYMOPT_IGNORE_NT_SYMPATH

Выключено

Выключено

0x2000

SYMOPT_INCLUDE_32BIT_MODULES

Выключено

Выключено

0x4000

SYMOPT_PUBLICS_ONLY

Выключено

Выключено

0x8000

SYMOPT_NO_PUBLICS

Выключено

Выключено

0x10000

SYMOPT_AUTO_PUBLICS

Включено

Включено

0x20000

SYMOPT_NO_IMAGE_SEARCH

С

Выкл.

0x40000

SYMOPT_SECURE

Выключено

Выключено

0x80000

SYMOPT_NO_PROMPTS

Включено в KD и CDB

Выкл. в WinDbg

Выключено

0x80000000

SYMOPT_DEBUG

Выключено

Выключено

Изменение параметров параметра символа

Команда .symopt (Set Symbol Options) может использоваться для изменения или отображения параметров символов. Кроме того, для изменения этих параметров доступен ряд параметров и команд командной строки; они перечислены в отдельных разделах SYMOPT_XXX .

Вы также можете управлять всеми параметрами одновременно с помощью параметра командной строки-sflags. За этим параметром может следовать десятичное число или шестнадцатеричное число с префиксом 0x. Рекомендуется использовать шестнадцатеричное значение, так как флаги символов правильно выровнены таким образом. Будьте осторожны при использовании этого метода, так как он задает все битовое поле и переопределяет все значения по умолчанию обработчика символов. Например, 0x401 -sflags не только включает SYMOPT_EXACT_SYMBOLS и SYMOPT_CASE_INSENSITIVE, но и отключает все остальные параметры, которые обычно включены по умолчанию.

Значение по умолчанию для общего числа битов флагов — 0x30237 в WinDbg, 0xB0227 в CDB и KD и 0x10C13 в средстве DBH, если эти программы запускаются без параметров командной строки, связанных с символами.

SYMOPT_CASE_INSENSITIVE

Этот параметр символа приводит к тому, что при поиске имен символов регистр не учитывается.

Этот параметр включен по умолчанию во всех отладчиках. После запуска отладчика его можно включить или отключить с помощью .symopt+0x1 или .symopt-0x1 соответственно.

Этот параметр включен по умолчанию в DBH. После запуска DBH его можно включить или отключить с помощью symopt +1 или symopt -1 соответственно.

SYMOPT_UNDNAME

Этот параметр символа приводит к тому, что при отображении открытых имен символов не будут разобраны, а при поиске имен символов игнорируются украшения символов. Имена закрытых символов никогда не декорируются независимо от того, активен ли этот параметр. Сведения о оформлении имен символов см. в разделе Открытые и частные символы.

Этот параметр включен по умолчанию во всех отладчиках. После запуска отладчика его можно включить или отключить с помощью .symopt+0x2 или .symopt-0x2 соответственно.

Этот параметр включен по умолчанию в DBH. Он отключается, если используется параметр командной строки -d. После запуска DBH его можно включить или отключить с помощью symopt +2 или symopt -2 соответственно.

SYMOPT_DEFERRED_LOADS

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

Этот параметр включен по умолчанию во всех отладчиках. В CDB и KD параметр командной строки -s отключит этот параметр. Его также можно отключить в CDB с помощью переменной LazyLoad в файлеtools.ini . После запуска отладчика этот параметр можно включить или отключить с помощью .symopt+0x4 или .symopt-0x4 соответственно.

Этот параметр отключен по умолчанию в DBH. После запуска DBH его можно включить или отключить с помощью symopt +4 или symopt -4 соответственно.

SYMOPT_NO_CPP

Этот параметр символа отключает перевод C++. Если этот параметр символа задан, :: заменяется на __ во всех символах.

Этот параметр отключен по умолчанию во всех отладчиках. Его можно активировать с помощью параметра командной строки -snc. После запуска отладчика его можно включить или отключить с помощью .symopt+0x8 или .symopt-0x8 соответственно.

Этот параметр отключен по умолчанию в DBH. После запуска DBH его можно включить или отключить с помощью symopt +8 или symopt -8 соответственно.

SYMOPT_LOAD_LINES

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

В KD и CDB этот параметр отключен по умолчанию; В WinDbg этот параметр включен по умолчанию. В CDB и KD параметр командной строки -lines включает этот параметр. После запуска отладчика его можно включить или отключить с помощью SYMOPT+0x10 или Symopt-0x10 соответственно. Его также можно включить и отключить с помощью команды .lines (Toggle Source Line Support).

Этот параметр включен по умолчанию в DBH. После запуска DBH его можно включить или отключить с помощью symopt +10 или symopt -10 соответственно.

SYMOPT_OMAP_FIND_NEAREST

Если код оптимизирован и в ожидаемом расположении нет символа, этот параметр приводит к использованию ближайшего символа.

Этот параметр включен по умолчанию во всех отладчиках. После запуска отладчика его можно включить или отключить с помощью SYMOPT+0x20 или SYMOPT-0x20 соответственно.

Этот параметр включен по умолчанию в DBH. После запуска DBH его можно включить или отключить с помощью symopt +20 или symopt -20 соответственно.

SYMOPT_LOAD_ANYTHING

Этот параметр символа снижает выборку обработчика символов при попытке сопоставления символов.

Этот параметр отключен по умолчанию во всех отладчиках. После запуска отладчика его можно включить или отключить с помощью .symopt+0x40 или .symopt-0x40 соответственно.

Этот параметр отключен по умолчанию в DBH. После запуска DBH его можно включить или отключить с помощью symopt +40 или symopt -40 соответственно.

SYMOPT_IGNORE_CVREC

Этот параметр символа приводит к тому, что обработчик символов игнорирует запись CV в заголовке загруженного изображения при поиске символов.

Этот параметр отключен по умолчанию во всех отладчиках. Его можно активировать с помощью параметра командной строки -sicv. После запуска отладчика его можно включить или отключить с помощью .symopt+0x80 или .symopt-0x80 соответственно.

Этот параметр отключен по умолчанию в DBH. После запуска DBH его можно включить или отключить с помощью symopt +80 или symopt -80 соответственно.

SYMOPT_NO_UNQUALIFIED_LOADS

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

Этот параметр можно использовать в качестве защиты от неправильного обозначения символа. Как правило, неправильно введенный символ приводит к приостановке отладчика при поиске всех выгруженных файлов символов. Если этот параметр активен, неправильно введенный символ не будет найден в загруженных модулях, и поиск завершится.

Этот параметр отключен по умолчанию во всех отладчиках. Его можно активировать с помощью параметра командной строки -snul. После запуска отладчика его можно включить или отключить с помощью .symopt+0x100 или .symopt-0x100 соответственно.

Этот параметр отключен по умолчанию в DBH. После запуска DBH его можно включить или отключить с помощью symopt +100 или symopt -100 соответственно.

SYMOPT_FAIL_CRITICAL_ERRORS

Этот параметр символа приводит к подавлению диалоговых окон с ошибками доступа к файлам.

Если этот параметр отключен, ошибки доступа к файлу, такие как "диск не готов", возникающие во время загрузки символов, приводят к отображению диалоговых окон. Если этот параметр включен, эти поля подавляются и все ошибки доступа получают ответ "сбой".

Этот параметр включен по умолчанию во всех отладчиках. Его можно отключить с помощью параметра командной строки -sdce. После запуска отладчика его можно включить или отключить с помощью .symopt+0x200 или .symopt-0x200 соответственно.

Этот параметр отключен по умолчанию в DBH. После запуска DBH его можно включить или отключить с помощью symopt +200 или symopt -200 соответственно.

SYMOPT_EXACT_SYMBOLS

Этот параметр символа приводит к тому, что отладчик выполняет строгую оценку всех файлов символов.

Если этот параметр включен, даже малейшее несоответствие между файлами символов и ожиданиями обработчика символов приведет к тому, что символы будут игнорироваться.

Этот параметр отключен по умолчанию во всех отладчиках. Его можно активировать с помощью параметра командной строки -ses. После запуска отладчика его можно включить или отключить с помощью .symopt+0x400 или .symopt-0x400 соответственно.

Параметр командной строки -failinc также включает SYMOPT_EXACT_SYMBOLS. Кроме того, при отладке минидампа в пользовательском режиме или минидампа в режиме ядра параметр -failinc не позволит отладчику загружать модули, образы которых невозможно сопоставить.

Этот параметр включен по умолчанию в DBH. После запуска DBH его можно включить или отключить с помощью symopt +400 или symopt -400 соответственно.

SYMOPT_ALLOW_ABSOLUTE_SYMBOLS

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

Этот параметр отключен по умолчанию во всех отладчиках. После запуска отладчика его можно включить или отключить с помощью .symopt+0x800 или .symopt-0x800 соответственно.

Этот параметр включен по умолчанию в DBH. После запуска DBH его можно включить или отключить с помощью symopt +800 или symopt -800 соответственно.

SYMOPT_IGNORE_NT_SYMPATH

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

Этот параметр отключен по умолчанию во всех отладчиках. Его можно активировать с помощью параметра командной строки -sins. Однако symopt не может управляться после запуска отладчика, так как переменные среды считываются только при запуске.

Этот параметр отключен по умолчанию в DBH и во всех случаях игнорируется DBH.

SYMOPT_PUBLICS_ONLY

Этот параметр символа приводит к тому, что DbgHelp игнорирует частные данные символов и выполняет поиск сведений о символах только в общедоступной таблице символов. Это эмулирует поведение DbgHelp до добавления поддержки этих типов. См . раздел Общедоступные и частные символы.

Этот параметр отключен по умолчанию во всех отладчиках. После запуска отладчика его можно включить или отключить с помощью .symopt+0x4000 или .symopt-0x4000 соответственно.

Этот параметр отключен по умолчанию в DBH. Он включается, если используется параметр командной строки -d. После запуска DBH его можно включить или отключить с помощью symopt +4000 или symopt -4000 соответственно.

SYMOPT_NO_PUBLICS

Этот параметр символа не позволяет DbgHelp выполнять поиск в открытой таблице символов. Это может значительно ускорить перечисление символов и поиск символов. Если вас интересует исключительно скорость поиска, SYMOPT_AUTO_PUBLICS вариант, как правило, предпочтительнее, чем этот. Сведения о таблице открытых символов см. в разделе Открытые и закрытые символы.

Этот параметр отключен по умолчанию во всех отладчиках. После запуска отладчика его можно включить или отключить с помощью .symopt+0x8000 или .symopt-0x8000 соответственно.

Этот параметр отключен по умолчанию в DBH. После запуска DBH его можно включить или отключить с помощью symopt +8000 или symopt -8000 соответственно.

SYMOPT_AUTO_PUBLICS

Этот параметр symbol позволяет DbgHelp выполнять поиск в открытой таблице символов в PDB-файле только в крайнем случае. При обнаружении совпадений при поиске данных частных символов поиск по открытым символам не выполняется. Это повышает скорость поиска символов.

Этот параметр включен по умолчанию во всех отладчиках. Его можно отключить с помощью параметра командной строки -sup. После запуска отладчика его можно включить или отключить с помощью .symopt+0x10000 или .symopt-0x10000 соответственно.

Этот параметр включен по умолчанию в DBH. Он отключается, если используется параметр командной строки -d. После запуска DBH его можно включить или отключить с помощью symopt +10000 или symopt -10000 соответственно.

Этот параметр символа не позволяет DbgHelp искать на диске копию изображения при загрузке символов.

Этот параметр включен по умолчанию во всех отладчиках. После запуска отладчика его можно включить или отключить с помощью .symopt+0x20000 или .symopt-0x20000 соответственно.

Этот параметр отключен по умолчанию в DBH. После запуска DBH его можно включить или отключить с помощью symopt +20000 или symopt -20000 соответственно.

SYMOPT_SECURE

(Только в режиме ядра) Этот параметр символа указывает, активен ли безопасный режим .

Безопасный режим отключен по умолчанию во всех отладчиках. Его можно активировать с помощью параметра командной строки -secure. Если отладчик работает, находится в неактивном режиме и не установил серверы отладки, безопасный режим можно включить с помощью SYMOPT+0x40000 или .secure (активировать безопасный режим).

Этот параметр отключен по умолчанию в DBH. После запуска DBH его можно включить или отключить с помощью symopt +40000 или symopt -40000 соответственно.

Безопасный режим нельзя отключить после активации.

SYMOPT_NO_PROMPTS

Этот параметр символа подавляет диалоговые окна проверки подлинности с прокси-сервера. Это может привести к тому, что SymSrv не сможет получить доступ к хранилищу символов в Интернете.

Дополнительные сведения см. в разделе Брандмауэры и прокси-серверы.

В KD и CDB этот параметр включен по умолчанию; В WinDbg этот параметр отключен по умолчанию. После запуска отладчика его можно включить или отключить с помощью .symopt+0x80000 или .symopt-0x80000 соответственно, за которым следует команда .reload (Reload Module). Его также можно включить и отключить с помощью команд расширения !sym prompts off и !sym prompts, а затем команды .reload (Reload Module).

Этот параметр отключен по умолчанию в DBH. После запуска DBH его можно включить или отключить с помощью symopt +80000 или symopt -80000 соответственно.

-SYMOPT_DEBUG

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

Имя каждого файла символов будет отображаться при загрузке. Если отладчик не может загрузить файл символов, отобразится сообщение об ошибке. Сообщения об ошибках для PDB-файлов будут отображаться в виде текста. Сообщения об ошибках для DBG-файлов будут иметь вид кода ошибки; Эти коды описаны в файле winerror.h.

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

Этот параметр отключен по умолчанию во всех отладчиках. Его можно активировать с помощью параметра командной строки -n. После запуска отладчика его можно включить или отключить с помощью .symopt+0x80000000 или .symopt-0x80000000 соответственно. Его также можно включить и отключить с помощью команд расширения !sym шумный и !sym quiet .

Примечание Этот параметр не следует путать с шумной загрузкой источника, которая управляется командой .srcnoisy (загрузка источника noisy).

Этот параметр отключен по умолчанию в DBH. Его можно активировать с помощью параметра командной строки -n. После запуска DBH его можно включить или отключить с помощью symopt +80000000 или symopt -80000000 соответственно. Его также можно включить и отключить с помощью подробных команд on и off.