русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Отладки | Настройка программы

Отладки, или Настройка программы ( англ. debugging ) - методический процесс поиска и уменьшения числа ошибок или дефектов в компьютерной программе или электронном оборудовании с целью получения ожидаемого поведения. Отладки, как правило, становится тяжелее, когда различные подсистемы сильно связаны между собой, поскольку изменения в одной части могут вызвать ошибки в другой.

 

Терминология

Есть определенные разногласия по поводу происхождения термина англ. debugging.

Термины «bug» и «debugging», говорят, первой приняла Грейс Гоппера в 1940-х годах. Когда она работала на компьютере Mark II в Гарвардском университете, ее сотрудники обнаружили, что моль застряла в реле и тем самым препятствовала действиям компьютера, после чего она отметила, что они делали англ. debug (от англ. bug - жучок, насекомое) системы. Однако термин «bug» в смысле технической ошибки употреблялся, по крайней мере еще в 1878 Томасом Эдисоном, и «debugging», судя по всему, использовался как термин в аэронавтике перед появлением компьютеров.

 

Средства

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

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

В некоторых ситуациях программные средства общего назначения, которые привязаны к конкретному языку, могут быть очень полезными. Примером могут быть инструменты статического анализа кода. Эти инструменты выполняют поиск очень конкретных известных (распространенных и редких) проблем в сырцовом коде. Проблемы, выявленные этими инструментами, редко сказываются компилятором или транслятором, поскольку эти проблемы присутствуют не на синтаксическом уровне, а на семантическом. Некоторые производители таких инструментов утверждают, что их программы могут обнаружить более 300 уникальных проблем. Такие средства могут быть чрезвычайно полезными при проверке очень больших объемов сырцового кода, где очень неэффективно просматривать весь код, или отслеживать все пути его выполнения. Типичным примером выявленной проблемы может быть обращение к переменной до того, как ее значение установлено. Другим примером может быть более строгая проверка типов, если речь таковой не имеет. Таким образом, эти средства являются лучшими для выявления возможных недостатков, в противоположность фактическим порокам. Как результат, эти средства обладают высоким уровнем ложного срабатывания. Древняя утилита Unix Lint является одним из старейших примеров средств такого типа.

Для отладки электронных устройств (например, компьютерного оборудования ), а также программного обеспечения низкого уровня ( BIOS, драйверы устройств и т.д.) и встроенных программ, употребляются такие инструменты, как осциллограф, анализатор логики, ICE, POST-контроллер, часто используется и в комбинации. Они могут выполнять много типичных действий обычных отладчику на программном обеспечении для микропрограммных средств.

 

Процесс отладки

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

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

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

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

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

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

 

Антиотладчики

Антиотладка является «осуществление одного или нескольких методов в компьютерном коде, который препятствует попыткам реинжиниринга и отладки целевого процесса ». Виды подходов:

  • На основе API: проверка на наличие отладчиков, используя информацию о системе
  • На основе исключений: проверяется, идет перехват исключительных ситуаций
  • Блокирование процессов и потоков: проверяется, были манипуляции с блокированием процесса или потоков
  • Изменение кода: проверяется были ли изменению в коде, внесенные отладчиков для возделывания программных точек останова
  • На основе оборудования и регистров: проверяются аппаратные точки останова и регистры процессора
  • Время и латентность: проверяется время на выполнение инструкций

Отладки может быть препятствием при использовании одного или нескольких из вышеупомянутых методов. Есть достаточно много методов антиотладки для защиты программного обеспечения от большинства угроз.

Просмотров: 16533

Вернуться воглавление




Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.