Отладка символ

редактировать

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

Символьная информация может быть скомпилирована вместе с двоичным файлом модуля , распределена в отдельном файле или просто отброшена во время компиляции и / или связывание.

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

Содержание
  • 1 Встроенные символы
    • 1.1 SysV ABI
    • 1.2 Microsoft символы отладки
    • 1.3 Apple
  • 2 История
  • 3 См. также
  • 4 Ссылки
  • 5 Общедоступные символы и исходные серверы
Встроенные символы

Символы отладки обычно включают не только имя функции или глобальной переменной, но также имя файла исходного кода, в котором встречается символ, а также номер строки, в которой он определен. Другая информация включает тип символа (целое число, число с плавающей запятой, функция, исключение и т. Д.), Область действия (область видимости блока или глобальная область действия ), размер и, для классов, имя класса, а также методы и члены в нем. Вся эта дополнительная информация может занимать довольно много места, особенно имена файлов и номера строк. Таким образом, двоичные файлы с отладочными символами могут стать довольно большими, часто в несколько раз превышающими размер вырезанного файла. Чтобы избежать этого дополнительного размера, большинство дистрибутивов операционных систем поставляют двоичные файлы, которые удалены, то есть из которых были удалены все символы отладки. Это достигается, например, с помощью команды strip в unix.

Некоторые компиляторы выводят символьную отладочную информацию в отдельный файл, а не помещают ее вместе с двоичным файлом.

SysV ABI

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

символы отладки Microsoft

компиляторы Microsoft создают файл с именем PDB, содержащий символы отладки. Некоторые компании поставляют PDB на своих CD / DVD для устранения неполадок, а другие компании (например, Microsoft и Mozilla Corporation ) позволяют загружать символы отладки из Интернета. Отладчик WinDBG и Visual Studio IDE можно настроить для автоматической загрузки отладочных символов для Windows DLL по запросу. Символы отладки PDB, которые распространяет Microsoft, включают только общедоступные функции, глобальные переменные и их типы данных. Mozilla Corporation имеет аналогичную инфраструктуру, но распространяет полную отладочную информацию.

И Microsoft, и Mozilla также предлагают исходный код (Microsoft предоставляет определенные компоненты, такие как большая часть .NET Framework, тогда как Mozilla предлагает полный исходный код) для создания отладка проще.

Apple

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

История

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

См. Также
Ссылки
Открытые символы и исходные серверы
Последняя правка сделана 2021-05-17 10:37:10
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте