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


Символы и файлы символов

Если приложения, библиотеки, драйверы или операционные системы связаны, компоновщик, создающий файлы .exe и .dll, также создает ряд дополнительных файлов, называемых файлами символов.

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

Как правило, файлы символов могут содержать:

  • Глобальные переменные

  • Локальные переменные

  • Имена функций и адреса их точек входа

  • Записи пропуска указателя кадра (FPO)

  • Номера исходных строк

Каждый из этих элементов называется по отдельности символом. Например, один файл символов Myprogram.pdb может содержать несколько сотен символов, включая глобальные переменные и имена функций, а также сотни локальных переменных. Часто компании-разработчики программного обеспечения выпускают две версии каждого файла символов: полный файл символов, содержащий как открытые символы , так и частные символы, и сокращенный (урезаемый) файл, содержащий только открытые символы. Дополнительные сведения см. в разделе Общедоступные и частные символы.

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

Символы Windows

Windows сохраняет свои символы в файлах с расширением PDB.

Компилятор и компоновщик управляют форматом символа. Компоновщик Visual C++ помещает все символы в PDB-файлы.

Операционная система Windows была построена в двух версиях. Бесплатная сборка (или розничная сборка) содержит относительно небольшие двоичные файлы, а проверенная сборка (или отладочная сборка) содержит большие двоичные файлы с большим количеством отладочных символов в самом коде. Проверенные сборки были доступны в более ранних версиях Windows до Windows 10 версии 1803. Каждая из этих сборок имела собственные файлы символов. При отладке целевого объекта в Windows необходимо использовать файлы символов, соответствующие сборке Windows в целевом объекте.

В следующей таблице перечислены несколько каталогов, которые существуют в стандартном дереве символов Windows:

Directory Содержит файлы символов для

ACM

Файлы Диспетчера сжатия аудио (Майкрософт)

COM

Исполняемые файлы (.com)

CPL

программы панель управления

DLL

Файлы библиотеки динамической компоновки (.dll)

DRV

Файлы драйверов (DRV)

EXE

Исполняемые файлы (.exe)

SCR

Файлы заставки

SYS

Файлы драйверов (.sys)