Символ отладки
Эта статья нуждается в дополнительных цитатах для проверки . ( декабрь 2013 г. ) |
Символ отладки — это особый вид символа , который присоединяет дополнительную информацию к таблице символов объектного файла , такого как общая библиотека или исполняемый файл . Эта информация позволяет символьному отладчику получить доступ к информации из исходного кода двоичного файла, такой как имена идентификаторов, включая переменные и подпрограммы.
модуля Символьная информация может быть скомпилирована вместе с двоичным файлом , распределена в отдельном файле или просто отброшена во время компиляции и/или компоновки .
Эта информация может быть полезна при попытке исследовать и исправить сбой приложения или любую другую ошибку. [1]
Отладочная информация
[ редактировать ]Символы отладки обычно включают в себя не только имя функции или глобальной переменной, но также имя файла исходного кода, в котором встречается этот символ, а также номер строки, в которой он определен. Другая информация включает тип символа (целое число, число с плавающей точкой, функция, исключение и т. д.), область действия ( область блока или глобальная область ), размер и, для классов, имя класса, а также методы и члены. в этом.
Часть отладочной информации включает строку кода в исходном файле, которая определяет этот символ (функцию или глобальную переменную), а также символы, связанные с кадрами исключений.
Эта информация может храниться в таблице символов объектного файла, исполняемого файла или общей библиотеки или может находиться в отдельном файле.
В некоторых системах, например, z/OS , отладочная информация содержит больше, чем просто таблицу символов, например, ADATA, обсуждаемая в § OS/390 и др., содержит исходный код.
Отладочная информация может занимать довольно много места, особенно имена файлов и номера строк. Таким образом, двоичные файлы с символами отладки могут стать довольно большими, часто в несколько раз превышающими размер удаленного файла. [2] Чтобы избежать этого дополнительного размера, большинство дистрибутивов операционных систем поставляют удаленные двоичные файлы, т. е. из которых удалены все символы отладки. Это достигается, например, с помощью команды Strip в Unix . Если отладочная информация находится в отдельных файлах, эти файлы обычно не поставляются с дистрибутивом.
Встроенные символы
[ редактировать ]Unix-подобные системы
[ редактировать ]Stabs был ранним форматом для отладки символов в Unix-подобных системах. Новый формат DWARF , для которого существуют формальные спецификации, в значительной степени вытеснил его. Спецификация позволяет любому совместимому компилятору или ассемблеру создавать символы отладки в стандартизированном формате, а любому отладчику, например GNU Debugger (GDB), получать доступ и отображать эти символы.
ИБМ
[ редактировать ]Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( июль 2024 г. ) |
Компиляторы для линейки мэйнфреймов IBM, произошедшие от System /360, имеют опцию TEST, которая заставляет компилятор включать отладочную информацию. [3] [4] [5] в объектном файле. Аналогично, редакторы связей имеют опцию TEST, которая позволяет сохранять отладочную информацию. [6] в загрузочном модуле. Различные инструменты отладки, например OS/360 TESTRAN, TSO TEST, имеют возможность использовать встроенные определения символов.
Внешние файлы отладки
[ редактировать ]Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( июль 2024 г. ) |
OS/390 и др.
[ редактировать ]IBM High Level Assembler (HLASM) и другие компиляторы, работающие, например, на z/OS , имеют опцию ADATA, которая создает файл связанных данных (ADATA). [7] содержащий больше информации, чем та, которую давала старая опция TEST. В частности, файл ADATA включает строки исходного кода и их метаданные.
Символы отладки Microsoft
[ редактировать ]Компиляторы Microsoft создают файл базы данных программы (PDB), содержащий символы отладки. Некоторые компании поставляют PDB на своих CD/DVD, чтобы обеспечить возможность устранения неполадок, а другие компании (например, Microsoft и Mozilla Corporation ) позволяют загружать символы отладки из Интернета. Отладчик WinDbg и интегрированную среду разработки Visual Studio можно настроить на автоматическую загрузку символов отладки для (DLL) Windows библиотек динамической компоновки по требованию. Символы отладки PDB, распространяемые Microsoft, включают только общедоступные функции, глобальные переменные и их типы данных. Корпорация Mozilla имеет аналогичную инфраструктуру, но распространяет полную отладочную информацию.
Яблоко
[ редактировать ]На платформах Apple символы отладки могут создаваться в процессе сборки в виде файлов dSYM. Apple использует термин «символизировать» для обозначения замены адресов в диагностических файлах на удобочитаемые значения. [8]
История
[ редактировать ]Символические отладчики существовали со времен мэйнфреймов , почти с момента первого появления подходящих компьютерных дисплеев для отображения символической отладочной информации (и даже раньше с символическими дампами на бумаге). Они не ограничивались компилируемыми языками высокого уровня и были доступны также для на языке ассемблера программ . Для IBM/360 они создавали объектный код (по запросу), который включал «SYM-карты». Обычно они игнорировались загрузчиком программы, но были полезны для символьного отладчика, поскольку хранились в той же программной библиотеке, что и исполняемый логический код.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Отладка с помощью символов» . Центр разработки Windows . Майкрософт . Архивировано из оригинала 11 января 2020 г. Проверено 11 января 2020 г.
- ^ «Для чего нужны символы?» . ТехНет . Майкрософт . 15 июля 2008 г. Архивировано из оригинала 26 декабря 2014 г. Проверено 4 января 2015 г.
- ^ «Приложение D: Форматы входных записей редактора TESTRAN» (PDF) . Операционная система IBM System/360 — TESTRAN — Руководство по логике программы — Номер программы 3605-PT-516 (PDF) . ТНЛ ГН26-8016. ИБМ . 1 апреля 1971 г. стр. 119–120. GY28-6611-0 . Проверено 11 июля 2024 г.
- ^ «Приложение. Соглашения по вводу и форматы записей» (PDF) . MVS/370 — Логика редактора связей — Продукт средства обработки данных 5665-295 — Версия 1.0 (PDF) (Первое издание). ИБМ . Апрель 1983 г., стр. 195–206. LY26-3921-0 . Проверено 11 июля 2024 г.
- ^ LY26-3921-0 , с. 195, рисунок 69. Запись ввода SYM (образ карты) .
- ^ LY26-3921-0 , с. 199, рисунок 76. SYM-запись (загрузочный модуль) .
- ^ «Приложение C. Вывод файла связанных данных» (PDF) . Ассемблер высокого уровня для z/OS, z/VM и z/VSE — Руководство программиста — Версия 1, выпуск 6 (PDF) . ИБМ . 2015. С. 227–275. SC26-4941-07 . Проверено 11 июля 2024 г.
- ^ «Понимание и анализ отчетов о сбоях приложений iOS» . Библиотека разработчиков iOS . Apple, Inc. 8 января 2018 г. [29 января 2009 г.]. Техническое примечание TN2151. Архивировано из оригинала 19 декабря 2019 г. Проверено 11 января 2020 г.
Внешние ссылки
[ редактировать ]- http://referencesource.microsoft.com/ Сервер эталонного исходного кода Microsoft
- https://firefox-source-docs.mozilla.org/taskcluster/using-the-mozilla-source-server.html Исходный сервер Mozilla
- http://www.symbolsource.org/ Библиотеки .NET в SymbolSource