Отложенная загрузка символов

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

При изменении пути к символам, например с помощью команды .sympath (Задать путь к символу), все загруженные модули с символами экспорта загружаются отложенно. Символы модулей с полными символами PDB будут отложенно перезагружены, если новый путь больше не включает исходный путь, который использовался для загрузки символов PDB. Если новый путь по-прежнему содержит исходный путь к файлу символов PDB, эти символы не будут отложенно перезагружены.

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

В WinDbg поведение отложенной загрузки символов можно изменить для символов без префикса модуля с помощью параметра Разрешить неквалифицированные символы в меню Отладка .

Отложенную загрузку символов можно переопределить с помощью команды ld (Load Symbols) или команды .reload (Reload Module) с параметром /f . При этом указанные символы загружаются немедленно, хотя загрузка других символов откладывается.

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