~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ E3BE60F9E40280C39A47ECE09A28F70F__1718173260 ✰
Заголовок документа оригинал.:
✰ Debugger - Wikipedia ✰
Заголовок документа перевод.:
✰ Отладчик — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Debugger ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/e3/0f/e3be60f9e40280c39a47ece09a28f70f.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/e3/0f/e3be60f9e40280c39a47ece09a28f70f__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 01:27:28 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 12 June 2024, at 09:21 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Отладчик — Википедия Jump to content

Отладчик

Из Википедии, бесплатной энциклопедии
Winpdb отлаживает сам себя

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

В качестве альтернативы исследуемый код может выполняться на симуляторе набора команд (ISS), методе, который обеспечивает большую мощность в его способности останавливаться при возникновении определенных условий, но который обычно будет несколько медленнее, чем выполнение кода непосредственно на соответствующем (или тот же) процессор. Некоторые отладчики предлагают два режима работы: полное или частичное моделирование, чтобы ограничить это влияние.

« Ловушка » возникает, когда программа не может нормально продолжать работу из-за ошибки программирования или неверных данных. Например, программа могла попытаться использовать инструкцию, недоступную в текущей версии ЦП, или попытаться получить доступ к недоступной или защищенной памяти . Когда программа «перехватывает» или достигает предустановленного состояния, отладчик обычно показывает местоположение в исходном коде, если это отладчик исходного уровня или символический отладчик , который сейчас часто встречается в интегрированных средах разработки . Если это отладчик низкого уровня или отладчик машинного языка, он показывает строку дизассемблирования ( если только он также не имеет онлайн-доступ к исходному исходному коду и не может отображать соответствующий раздел кода из сборки или компиляции).

Особенности [ править ]

Обычно отладчики предлагают обработчик запросов, преобразователь символов, интерпретатор выражений и интерфейс поддержки отладки на верхнем уровне. [1] запуск программы Отладчики также предлагают более сложные функции, такие как пошаговый ( пошаговый режим или анимация программы ), остановка ( прерывание ) (приостановка программы для проверки текущего состояния) при некотором событии или указанной инструкции с помощью точки останова и отслеживание значений переменных. [2] Некоторые отладчики имеют возможность изменять состояние программы во время ее работы. Также возможно продолжить выполнение в другом месте программы, чтобы обойти сбой или логическую ошибку.

Те же функции, которые делают отладчик полезным для исправления ошибок, позволяют использовать его в качестве инструмента взлома программного обеспечения для обхода защиты от копирования , управления цифровыми правами и других функций защиты программного обеспечения. Это также часто делает его полезным в качестве общего инструмента проверки, устранения ошибок и анализатора производительности , особенно если длины путей инструкций . показаны [3] Ранние микрокомпьютеры с дисковым хранилищем часто имели возможность диагностировать и восстанавливать поврежденные записи данных каталога или реестра, «восстанавливать» файлы, помеченные как удаленные, или взламывать защиту паролем файлов.

Большинство основных механизмов отладки, таких как gdb и dbx , предоставляют консольные интерфейсы командной строки . Интерфейсы отладчика — это популярные расширения механизмов отладчика, которые обеспечивают IDE интеграцию , анимацию программы и функции визуализации.

Запись и воспроизведение отладки [ править ]

Запись и воспроизведение отладки , [4] также известная как «запись полета программного обеспечения» или «запись выполнения программы», фиксирует изменения состояния приложения и сохраняет их на диск по мере выполнения каждой инструкции в программе. Затем запись можно воспроизводить снова и снова, а также интерактивно отлаживать ее для диагностики и устранения дефектов. Отладка с записью и воспроизведением очень полезна для удаленной отладки и устранения периодических, недетерминированных и других трудновоспроизводимых дефектов.

Обратная отладка [ править ]

Некоторые отладчики включают функцию, называемую « обратной отладкой », также известную как «историческая отладка» или «обратная отладка». Эти отладчики позволяют выполнить программу назад во времени. Различные отладчики включают эту функцию. Microsoft Visual Studio (выпуски 2010 Ultimate, 2012 Ultimate, 2013 Ultimate и 2015 Enterprise Edition) предлагает обратную отладку IntelliTrace для C#, Visual Basic .NET и некоторых других языков, но не для C++. Обратные отладчики также существуют для C, C++, Java, Python, Perl и других языков. Некоторые из них имеют открытый исходный код; некоторые из них являются проприетарным коммерческим программным обеспечением. Некоторые обратные отладчики замедляют работу целевого объекта на порядки, но лучшие обратные отладчики вызывают замедление в 2 раза или меньше. Обратная отладка очень полезна для решения определенных типов проблем, но пока широко не используется. [5]

путешествий Отладка во времени

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

Языковая зависимость [ править ]

Некоторые отладчики работают на одном конкретном языке, в то время как другие могут прозрачно работать с несколькими языками. Например, если основная целевая программа написана на COBOL , но вызывает подпрограммы языка ассемблера и подпрограммы PL/1 , отладчику, возможно, придется динамически переключать режимы, чтобы приспособиться к изменениям в языке по мере их возникновения.

Защита памяти [ править ]

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

Аппаратная поддержка для отладки [ править ]

хотя бы одну из этих функций, Большинство современных микропроцессоров имеют в конструкции ЦП облегчающих отладку:

  • Аппаратная поддержка пошагового выполнения программы, например флаг ловушки .
  • Набор инструкций, отвечающий требованиям виртуализации Попека и Голдберга, упрощает написание программного обеспечения-отладчика, работающего на том же процессоре, что и отлаживаемое программное обеспечение; такой ЦП может выполнять внутренние циклы тестируемой программы на полной скорости и при этом оставаться под контролем отладчика.
  • Внутрисистемное программирование позволяет внешнему аппаратному отладчику перепрограммировать тестируемую систему (например, добавляя или удаляя точки останова инструкций). Многие системы с такой поддержкой ISP также имеют другую поддержку аппаратной отладки.
  • Аппаратная поддержка точек останова кода и данных , таких как компараторы адресов и компараторы значений данных или, что требует значительно большей работы, аппаратное обеспечение ошибок страниц . [6]
  • Доступ JTAG к интерфейсам аппаратной отладки, например, на процессорах с архитектурой ARM , или с использованием набора команд Nexus . Процессоры, используемые во встроенных системах, обычно имеют обширную поддержку отладки JTAG.
  • Микроконтроллеры, имеющие всего шесть контактов, должны использовать заменители JTAG с малым количеством контактов, такие как BDM , Spy-Bi-Wire или debugWIRE на Atmel AVR . DebugWIRE, например, использует двунаправленную сигнализацию на выводе RESET.

Интерфейсы отладчика [ править ]

Некоторые из наиболее функциональных и популярных отладчиков реализуют только простой интерфейс командной строки (CLI) — часто для максимальной переносимости и минимизации потребления ресурсов. Разработчики обычно считают отладку с помощью графического пользовательского интерфейса (GUI) более простой и продуктивной. [ нужна цитата ] Это причина появления визуальных интерфейсов, которые позволяют пользователям отслеживать и контролировать подчиненные отладчики, работающие только с CLI, через графический интерфейс пользователя . Некоторые интерфейсы отладчика с графическим интерфейсом разработаны для совместимости с различными отладчиками только с интерфейсом командной строки, тогда как другие ориентированы на один конкретный отладчик.

Список отладчиков [ править ]

Некоторые широко используемые отладчики:

Более ранние отладчики мини-компьютеров включают:

Отладчики мэйнфреймов включают в себя:

См. также [ править ]

Ссылки [ править ]

Цитаты [ править ]

  1. ^ Аггарвал и Кумар, с. 302.
  2. ^ Аггарвал и Кумар 2003, с. 301.
  3. ^ Аггарвал и Кумар, стр. 307-312.
  4. ^ О'Каллахан, Роберт; Джонс, Крис; Фройд, Натан; Хьюи, Кайл; Нолл, Альберт; Партуш, Нимрод (2017). «Инженерная запись и воспроизведение расширенного технического отчета о возможности развертывания». arXiv : 1705.05937 [ cs.PL ].
  5. ^ Филип Классен; Отменить программное обеспечение. «Почему обратная отладка используется редко?» . Обмен стеками программистов . Стек Биржа, Inc. Проверено 12 апреля 2015 г.
  6. ^ Аггарвал и Кумар 2003, стр. 299-301.

Источники [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: E3BE60F9E40280C39A47ECE09A28F70F__1718173260
URL1:https://en.wikipedia.org/wiki/Debugger
Заголовок, (Title) документа по адресу, URL1:
Debugger - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)