Серверная операционная система Microsoft Windows 2003




Символы и деревья символов


Как правило, при компиляции кода могут быть созданы две версии исполняемого файла — отладочная версия (debug version, известная также под названием checked version) и обычная (nodebug или free). Отладочная версия содержит дополнительный код, который позволяет разработчику отлаживать программу. Файл отладочной версии имеет больший размер и исполняется медленнее. Обычная версия исполняемого файла компактнее и исполняется быстрее, но не позволяет осуществлять отладку.
Все исполняемые файлы, DLL, драйверы и другие программы представляют собой обычные (не-отладочные) версии. Каждому программному файлу ставится в соответствие символьный файл, который содержит отладочный код. Отладочная версия Windows, а также инструкции по ее установке входят в состав программного продукта Windows Device Driver Kit (DDK). Отладочная версия находится в подкаталоге Symbols, который содержит подкаталоги для файлов каждого типа (exe, dll, sys). Эта структура называется символьным деревом (symbol tree).
Утилитам, используемым для отладки или для интерпретации файлов дампа памяти, требуется символьное дерево, в котором содержатся символьные файлы соответствующей версии Windows NT/2000/XP или Windows Server 2003 (на момент, когда имеет место ошибка ядра STOP). Некоторые утилиты требуют, чтобы подкаталог \Symbols находился на жестком диске в каталоге %SystemRoot%. Некоторые утилиты допускают указание пути к подкаталогу \Symbols в качестве одной из опций командной строки (в режиме командной строки или в диалоговом окне).
Отладка ядра требует наличия двух компьютеров — так называемого целевого компьютера (target machine) и хост-компьютера (host machine).