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


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

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

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

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

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

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

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

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

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

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

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

Символы Windows

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

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

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

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

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

ACM

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

КОМ

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

CPL

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

DLL

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

DRV

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

EXE

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

SCR

Файлы с сохранением экрана

SYS

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