Для чего нужен отладчик программы

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

  • внутрисхемным эмулятором
  • встроенным программным отладчиком
  • внешним программным отладчиком
  • отлаживаемым устройством с записанным в память программ двоичным кодом программы

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

Точка останова и отладчик. Зачем это вообще нужно

Рисунок 1. Пример системы отладки программного обеспечения для микроконтроллеров.

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

При использовании интегрированной среды программирования предоставляется удобный интерфейс, позволяющий легко отлаживать разрабатываемую программу. В настоящее время стандартом де-факто стал интерфейс, похожий на программную оболочку Visual C. Пример внешнего вида такой программной оболочки приведён на рисунке 2.

Рисунок 2. Пример внешнего вида отладчика интегрированной системы отладки программного обеспечения.

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

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

PYCHARM ДЛЯ PYTHON. 2 ЧАСТЬ. DEBUGGER

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

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

При написании достаточно простых программ иногда для отладки программ используют только этот последний этап тестирования. Однако обнаружение, поиск и устранение ошибок при использовании только этого метода очень трудоёмок! Это то же самое, что пытаться настроить аппаратуру без использования приборов!

Способы отладки программ.

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

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

Для отладки программ обычно применяют три способа:

  1. Пошаговая отладка программ с заходом в подпрограммы;
  2. Пошаговая отладка программ с выполнением подпрограммы как одного оператора;
  3. Выполнение программы до точки останова.

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

Если в программе имеются уже отлаженные подпрограммы, то подпрограмму можно рассматривать, как один оператор программы и воспользоваться вторым способом отладки программ.

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

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

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

Читайте также:
Для чего нужна программа winpcap

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

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

Источник: studopedia.su

Отладка в платформе «1С:Предприятие 8» (бесплатная статья по Программированию в 1С)
из цикла статей «Первые шаги в разработке на 1С»

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

В этом материале мы рассмотрим специальный инструмент, облегчающий разработку и отладку программного кода на платформе «1С:Предприятие», который получил название Отладчик. Изучив статью, вы узнаете:

  • Для чего нужен отладчик и как им пользоваться?
  • Что такое точки останова, как и зачем их ставить?
  • Как пошагово выполнять программный код и зачем это нужно?
  • Где смотреть значения своих переменных, а также вычислять значения выражений?
  • Для чего нужен стек вызова и как его посмотреть?
  • Как остановить выполнение программного кода по ошибке?

Применимость

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

Использование отладчика в системе «1С:Предприятие 8»

Система “1С:Предприятие 8” содержит встроенный отладчик программного кода.

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

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

Точка останова – место остановки работы системы в программном коде, отмеченное специальным маркером (Рис. 1).

Точка останова

Рис. 1. Точка останова

При срабатывании точки останова становится возможным пошаговое выполнение программного кода и анализ значений переменных.

Установка точек останова

Установка точки останова на определенной строке программного кода осуществляется двойным щелчком левой кнопки мыши в левой области программного модуля, которая выделена серым цветом.

Также возможна установка точки останова командой Точка останова на панели инструментов конфигуратора или кнопкой F9. Снятие существующей точки останова производится аналогичным образом.

Для установки точки останова на конец процедуры или функции необходимо устанавливать точку останова на ключевом слове КонецПроцедуры или КонецФункции.

Точку останова можно временно отключить, не удаляя ее из программного кода. Для выключения точки останова выполнить команду Отключить точку останова на панели инструментов или нажать сочетание клавиш Ctrl+Shift+F9.

Для просмотра всех точек останова нужно выполнить команду главного меню Отладка – Список точек останова или нажать сочетание клавиш Alt+F9. В открывшей форме Точки останова можно временно отключать или удалять точки останова (Рис. 2).

Список точек останова

Рис. 2. Список точек останова

Для удаления всех точек останова нужно выполнить команду главного меню конфигуратора Отладка – Убрать все точки останова.

Точка останова с условием

Точка останова с условием необходима для остановки выполнения программного кода при срабатывании определенного условия.

Для установки точки останова с условием нужно выполнить команду главного меню конфигуратора Отладка – Точка остановка с условием. Откроется форма Условие останова. В поле ввода нужно ввести необходимое условие (например, значение какой-либо переменной в программном коде) и нажать кнопку ОК (Рис. 3).

После запуска системы в режиме отладки точка останова сработает, когда будет выполнено условие останова. Убедиться в этом можно с помощью формы Табло (Рис. 3). Работа с формой Табло будет рассмотрена ниже.

Установка точки останова с условием и результат ее обработки

Рис. 3. Установка точки останова с условием и результат ее обработки

Для того чтобы начать отлаживать программный код необходимо установить точки останова и запустить приложение в режиме отладки. Для запуска отладки нужно выполнить команду главного меню конфигуратора Отладка – Начать отладку (F5).

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

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

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

Пошаговое выполнение программного кода

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

Шагнуть в (F11). Если следующий оператор программного кода выполняет вызов проце-дуры или функции, то осуществляется ее пошаговое выполнение, иначе – выполняется следующий оператор.

Шагнуть через (F10). Если следующий оператор программного кода выполняет вызов процедуры или функции, то осуществляется ее выполнение полностью без входа внутрь. Затем выполняется следующий оператор.

Идти до курсора (Shift+F10). Осуществляется выполнение операторов от текущей выпол-няемой строки до строки программного кода, где расположен курсор.

Использование форм Табло и Выражение

Для просмотра значений переменных и вычисления значений выражений во время оста-новки программного кода предназначены формы Табло и Выражение.

Форма Табло вызывается командой главного меню конфигуратора Отладка – Табло или сочетанием клавиш Ctrl+Alt+W. В табло можно записать значения каких-либо переменных и анализировать, как они изменяются в процессе выполнения программного кода.

Читайте также:
Insomnia программа что это

У табло доступны четыре закладки. По умолчанию закладки выключены. Для включения закладок в форме Табло нужно вызвать контекстное меню и установить флаг Закладки (Рис. 4).

Форма Табло с включенными закладками

Рис. 4. Форма “Табло” с включенными закладками

Для вычисления значений выражений в момент остановки программного кода используется форма Выражение. Для открытия этой формы используется команда главного меню конфигуратора Отладка – Вычислить выражение или сочетание клавиш Shift+F9 (Рис. 5).

Форма Выражение

Рис. 5. Форма “Выражение”

В поле Выражение вводится выражение на встроенном языке. Значение выражения можно получить нажав кнопку Рассчитать. В поле Результат выводится значение выражения. Выражение можно отобразить в табло нажав кнопку Включить в табло.

Для просмотра значений коллекции (например, таблицы значений, списка значений, массива) можно использовать команду Показать значение в отдельном окне или клавишу F2.

Просмотр стека вызовов

Стек вызовов – форма, которая позволяет отслеживать взаимные вызовы процедур и функций в процессе исполнения программного кода. Стек вызовов отображается командой главного меню конфигуратора Отладка – Стек вызовов или сочетанием клавиш Ctrl+Alt+C. Из формы Стек вызовов можно перейти к соответствующей процедуре или функции (Рис. 6).

Стек вызовов

Рис. 6. Стек вызовов

Остановка программного кода по ошибке

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

Для открытия формы нужно выполнить команду главного меню конфигуратора Отладка – Остановка по ошибке.

В форме нужно установить флаг Остановка по ошибке и запустить приложение в режиме отладки. Выполнение программного кода будет остановлено на строке, в которой возникла ошибка (Рис. 7).

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

Как показывает практика без отладчика поиск ошибок в программном кода занимает длительное время. Поэтому освоению отладчика нужно уделить особое внимание.

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

В заключение отметим, что конфигуратор – это полноценная и до недавнего времени единственная среда разработки приложений на платформе «1С:Предприятие 8». Он обладает очень богатым функционалом, призванным помочь разработчику в решении его ежедневных задач.

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

Источник: xn—-1-bedvffifm4g.xn--p1ai

Работа с отладчиком. Инструкция для «чайников»

Возможные режимы: «тонкий клиент», «веб-клиент», «мобильный клиент», «мобильное приложение», толстый клиент», «толстый клиент (обычное приложение)».
Не буду останавливаться на особенностях названных режимов работы 1С:Предприятия – это тема отдельной статьи. Скажу лишь, что выбор нужного режима запуска отладки осуществляется через меню «Отладка»→»Начало отладки».
Также запуск отладки в нужном режиме можно осуществить с помощью соответствующей кнопки в панели «Конфигурация» панели инструментов конфигуратора, предварительно добавив в нее кнопки для используемых при отладке режимов запуска.

2. Запуск отладки в режиме, когда предмет отладки выполняется от имени пользователя 1С (не разработчика)

Часто требуется «отловить» ошибку, которая возникает только у пользователей, не имеющих полных прав, или проверить, как работает добавленный функционал у пользователей с «неполными» правами. В таких случаях можно запустить отладку под одним из таких пользователей, выбрав его из списка в соответствующих настройках в меню «Сервис»→»Параметры». В открывшемся окне на вкладке «Основные» в группе «Пользователь» нужно установить переключатель в положение «Имя» и выбрать пользователя, для которого нужно выполнить отладку. После чего нужно запустить или перезапустить отладку в выбранном режиме.

3. Установка точек останова 1С

Точка останова 1С без условий: позиционируемся на нужной строке кода и затем либо нажимаем «F9», либо выполняем двойной щелчок мышью на затемненной полосе слева от белой области с кодом. Еще можно в контекстном меню (нажатие правой кнопки мыши) выбирать пункт «Точка останова в 1С». На полосе слева от области с кодом появится значок установленной точки останова 1С в виде кружочка розового цвета.
Точка останова 1С с условием (когда требуется чтобы остановка отладки происходила только при выполнении определенного условия): позиционируемся на нужной строке и затем в контекстном меню (нажатие правой кнопки мыши) выбираем пункт «Точка останова с условием. «. В открывшемся поле ввода условия точки останова 1С вводим необходимое условие для срабатывания данной точки останова 1С.
На полосе слева от области с кодом появится значок установленной точки останова (по условию в виде синего кружочка со знаком вопроса). Если требуется отключить/включить срабатывание точки останова в 1С (как простой, так и с условием): позиционируемся на нужной строке и затем либо нажимаем сочетание «Ctrl+Shift+F9», либо в контекстном меню (нажатие правой кнопки мыши) выбираем пункт «Включить/отключить точку останова». При этом отключенная точка останова в 1С будет обозначена кружочком серого цвета, а включенная в зависимости от типа: розовым кружочком либо синим кружочком со знаком вопроса.
В процессе отладки строка кода, на которой в данный момент остановлен отладчик, обозначается соответствующими курсором (далее «курсор отладки») — горизонтальной стрелкой светлого оттенка, которая может накладываться на кружочки установленных точек останова, если остановка произошла на соответствующей строке.
Замечу, что возможные действия с точками останова в 1С отображаются в соответствующих группах контекстного меню (нажатие правой кнопки мыши) и пункте меню «Отладка» главного меню. Чтобы открыть список всех установленных точек, нужно либо нажать сочетание «Alt+F9», либо выбрать пункт меню «Отладка»→»Список точек останова» главного меню. Откроется окно со списком точек останова 1С, в котором у активных точек останова взведен флаг «Вкл./выкл.». Доступные действия с точками останова отображаются справа над списком. По двойному щелчку по любой из точек в списке либо при нажатии кнопки «Перейти к исходному коду» над списком происходит открытие («переключение на») соответствующего модуля с позиционированием на соответствующей строке с установленной точкой останова.

Читайте также:
FreeWare программы что это

4. Остановка по ошибке при выполнении отладки

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

5. Пошаговая отладка

Пошаговая отладка выполняется следующим образом. «Шагнуть» (клавиша «F11», или соответствующий пункт в панели «Отладка конфигурации» панели инструментов, или соответствующий пункт в меню «Отладка» главного меню). Происходит выполнение кода текущей строки, и курсор отладки останавливается на следующей строке кода.

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

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

Следующее действие в Пошаговой отладке: «шагнуть из» (сочетание «Shift+F11» или соответствующий пункт в панели «Отладка конфигурации» панели инструментов, или соответствующий пункт в меню «Отладка» главного меню). Если курсор отладки находился на строке кода в теле текущей процедуры (функции), происходит выполнение оставшегося кода тела текущей процедуры (функции), включая вызовы из нее других процедур (функций), и так далее без ограничения по уровню вложенности. После чего курсор отладки позиционируется на строке после той, из которой произошел вызов данной процедуры (функции). «Идти до курсора» (сочетание «Shift+F10», или соответствующий пункт в панели «Отладка конфигурации» панели инструментов, или соответствующий пункт в меню «Отладка» главного меню). Выполняется весь код от текущего положения курсора отладки до строки, на которой находится курсор редактора кода, включая вызовы из нее других процедур (функций), и так далее без ограничения по уровню вложенности. После чего курсор отладки позиционируется на строке, на которой находится курсор редактора кода.

6. Вычисление выражений при выполнении отладки

При паузе во время отладки можно просматривать значения переменных. Для этого можно просто навести курсор редактора на нужную переменную и в небольшом всплывающем окне отобразится ее текущее значение. А можно выделить курсором название переменной и нажать «Shift+F9».

Еще вариант: выбрать соответствующий пункт в контекстном меню (нажатие правой кнопки мыши), на панели инструментов «Отладка конфигурации либо в меню «Отладка» главного меню. Откроется окно, в котором в поле «Выражение» будет название переменной, а в поле «Результат» — текущее значение переменной и ее тип. В поле «Выражение» можно указывать не только названия переменных, но и выражения для вычисления, в том числе производить вызовы любых доступных из данной процедуры функций текущего модуля или общих модулей конфигурации, или функций встроенного языка 1С.

7. Окно «Табло» при выполнении отладки (открывается внизу окна конфигурации в 1С)

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

8. Окно «Локальные переменные» (также открывается внизу окна конфигурации в 1С)

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

9. Окно «Стек вызовов» (также открывается внизу окна конфигурации в 1С)

С помощью Окна «Стек вызовов» мы можем, например, исправить следующую ошибку: в какой-то процедуре (функции) возникает ошибка из-за некорректного значения одного из параметров вызова, которое передавалось по цепочке вызывающих друг друга процедур и функций. Мы можем «выследить» ту процедуру или функцию, которая оказалась «источником» некорректной установки значения параметра, переданного далее по цепочке.

10. Восстановление связи с предметом отладки

Возникают ситуации, когда теряется связь с предметом отладки (чаще всего для кода, выполняемого на сервере). То есть отладчик перестает останавливаться на точках останова. В таких случаях обычно помогает в окне «Подключение» меню «Отладка» главного меню отключить и снова подключить требуемый предмет отладки (клиент, сервер и т.д.). В редких случаях приходится завершить и снова начать сеанс работы с конфигуратором. Специалист компании ООО «Кодерлайн» Аскер Жансуев

Источник: www.koderline.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru