Отладочные символы

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Отладочные символы или debug символы — информация, которую компилятор языка программирования генерирует автоматически на основе исходных кодов. Это специфичный кусок машинного кода, описывающий текущий исполняемый модуль. Отладочная информация может компилироваться вместе с бинарным исполняемым файлом, и входить в его состав, может присутствовать в качестве отдельного файла, либо же просто отбрасываться на этапе компиляции и/или линковки. Эта информация позволяет человеку использовать «символические» (отладочные) данные о двоичном файле, такие как имена переменных, процедур и функций из исходного кода. Эта информация может быть крайне полезной во время поиска ошибок в исходном коде, отладке программы и разного рода отказах.

Когда отладочные символы включаются в состав самого двоичного файла, его размер может весьма значительно увеличиваться (иногда на несколько мегабайт). Чтобы избежать этого избыточного размера, современные компиляторы выводят отладочную информацию в отдельный файл. Для компиляторов Microsoft этот файл имеет расширение PDB (Program Debug Database). Некоторые компании распространяют отладочные символы своих проектов на отдельных CD/DVD, чтобы конечные пользователи могли отлаживать их продукты. Так же некоторые компании, например, Mozilla Corporation, имеют специальные серверы, с которых можно скачать отладочные символы отдельно.

WinDBG — отладчик от Microsoft — может быть сконфигурирован так, чтобы автоматически загружать отладочную информацию для DLL-библиотек Windows по запросу, если в них есть необходимость. Однако pdb-файлы, которые распространяет Microsoft, разумеется, распространяются лишь частично (они включают в себя только общедоступные функции, глобальные переменные и их типы данных), в то время как у Mozilla Corporation они имеет схожую инфраструктуру, однако распространяются с полноценной отладочной информацией.

И Microsoft и Mozilla также распространяют исходные коды (Microsoft — предоставляет некоторые компоненты .Net Framework, в то время как Mozilla предоставляет полные исходные коды) для того чтобы упростить процесс отладки.

В репозиториях Debian отладочная информация выделена в пакеты с суффиксом «-dbg», которые могут быть установлены по желанию.

История[править | править исходный текст]

Символические отладчики фактически существовали еще в мире мейнфреймов практически с тех пор, как появились первые подходящие компьютерные дисплеи, на которых соответствующая информация отображалась (ранее же они существовали в качестве символических дампов на распечатках бумаги). Они не были ограничены компилируемыми языками высокого уровня и были так же доступны для уровня Ассемблера.

Публичные сервера исходных кодов и символьной отладки[править | править исходный текст]