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


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

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

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

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

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

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

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