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

Отла́дка — этап разработки компьютерной программы, на котором обнаруживают, локализуют и устраняют ошибки. Чтобы понять, где возникла ошибка, приходится:

· узнавать текущие значения переменных;

· выяснять, по какому пути выполнялась программа.

Существуют две взаимодополняющие технологии отладки.

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

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

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

ABAP отладчик. Отладка ABAP программы SAP.

· Синтаксическая ошибка. Неправильное употребление синтаксических конструкций, например употребление оператора цикла For без то или Next.

· Семантическая ошибка. Нарушение семантики той или иной конструкции, например передача функции параметров, не соответствующих ее аргументам.

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

Ручная отладка

Метод ручного тестирования

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

Общая методика отладки программных продуктов, написанных для выполнения в операционных системах MS DOS и Win32:

1 этап – изучение проявления ошибки;

2 этап – определение локализации ошибки;

3 этап – определение причины ошибки;

4 этап – исправление ошибки;

5 этап – повторное тестирование.

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

— программу наращивать «сверху-вниз», от интерфейса к обрабатываю­щим подпрограммам, тестируя ее по ходу добавления подпрограмм;

— выводить пользователю вводимые им данные для контроля и прове­рять их на допустимость сразу после ввода;

— предусматривать вывод основных данных во всех узловых точках ал­горитма (ветвлениях, вызовах подпрограмм).

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

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

Отладка ПС инструментальными средствами. Точка остановы.

Что такое «точка останова»? С какой целью она используется?

Точка останова — это преднамеренное прерывание выполнения программы, при котором выполняется вызов отладчика

Сопровождение ПС

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

Сопровождение программного обеспечения стандартизовано, имеются национальные стандарты Российской Федерации, идентичные международным (ISO/IEC 12207:2008 System and software engineering — Software life cycle processes, ГОСТ Р ИСО/МЭК 12207-2010 «Национальный стандарт Российской Федерации. Информационная технология. Системная и программная инженерия.

Процессы жизненного цикла программных средств»; ISO/IEC 14764:99 Information tehnology — Software maintenance, ГОСТ Р ИСО/МЭК 14764-2002 «Государственный стандарт Российской Федерации. Информационная технология. Сопровождение программных средств»; IEEE 1219).

Принято выделять несколько линий сопровождения (структура приведена на примере внешнего сопровождения ПО):

0 линия (call-center, информационный центр, горячая линия) — обработка телефонных обращений от клиентов, передача обращений техническим специалистам (1-я линия сопровождения)

1 линия (инженер по сопровождению, инженер технической поддержки, support engineer) — консультация/настройка/устранение ошибок в работе ПО/наполнение базы знаний, составление мануалов

2 линия (инженер по сопровождению, инженер технической поддержки, support engineer) функциональное сопровождение/проектная деятельность на этапе запуска ПО на машинах заказчика

3 линия (инженер по сопровождению, инженер технической поддержки, support engineer) — системное сопровождение/проектная деятельность на этапе запуска ПО на оборудовании заказчика

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

Адаптация ПС.

Приспособление программных средств к условиям функционирования, не предусмотренным приразработке.

Примечание. Адаптация заключается в доработке программного средства без изменения его основныхфункций

адаптация это процесс изменения и усовершенствования ПО для стабильной и правильной работы на компьютерах заказчика

Полевые испытания ПС

Полевые испытания ПС

Полевые испытания ПС — это демонстрация ПС вместе с технической системой, которой управляет эта ПС, узкому кругу заказчиков в реальных условиях и осуществляется тщательное наблюдение за поведением ПС [12.3]. Заказчикам должна быть предоставлена возможность задания собственных контрольных примеров, в частности, с выходов в критические режимы работы технической системы, а также с вызовом в ней аварийных ситуаций. Это дополнительные испытания, проводимые по решению аттестационной комиссии только для некоторых ПС, управляющих определенными техническими системами.

Качество ПО.

Ка́чество програ́ммного обеспечения — способность программного продукта при заданных условиях удовлетворять установленным или предполагаемым потребностям (ISO/IEC 25000:2014).

весь объем признаков и характеристик программ, который относится к их способности удовлетворять установленным или предполагаемым потребностям (ГОСТ Р ИСО/МЭК 9126-93, ISO 8402:94);

степень, в которой система, компонент или процесс удовлетворяют потребностям или ожиданиям заказчика или пользователя (IEEE Std 610.12-1990)

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

Читайте также:
Dynamic system updates на xiaomi что это за программа

Некоторые из факторов качества:

· Понятность: Назначение ПО должно быть понятным, из самой программы и документации.

· Полнота: Все необходимые части программы должны быть представлены и полностью реализованы.

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

· Портируемость: Лёгкость в адаптации программы к другому окружению: другой архитектуре, платформе, операционной системе или её версии.

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

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

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

· Удобство использования: Простота и удобство использования программы. Это требование относится прежде всего к интерфейсу пользователя.

· Надёжность: Отсутствие отказов и сбоев в работе программ, а также простота исправления дефектов и ошибок.

· Эффективность: Насколько рационально программа относится к ресурсам (память, процессор) при выполнении своих задач.

Приемо-сдаточные испытания

Приемочное тестирование или Приемо-сдаточное испытание (Acceptance Testing)

Формальный процесс тестирования, который проверяет соответствие системы требованиям и проводится с целью:

— определения удовлетворяет ли система приемочным критериям;

— вынесения решения заказчиком или другим уполномоченным лицом принимается приложение или нет.

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

Решение о проведении приемочного тестирования принимается, когда:

— продукт достиг необходимого уровня качества;

— заказчик ознакомлен с Планом Приемочных Работ (Product Acceptance Plan) или иным документом, где описан набор действий, связанных с проведением приемочного тестирования, дата проведения, ответственные и т.д.

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

Виды программных документов

Вид программного документа Содержание программного документа
Спецификация Состав программы и документации на нее
Ведомость держателей подлинников Перечень предприятий, на которых хранят подлинники программных документов
Текст программы Запись программы с необходимыми комментариями
Описание программы Сведения о логической структуре и функционировании программы
Программа и методика испытаний Требования, подлежащие проверке при испытании программы, а также порядок и методы их контроля
Техническое задание Назначение и область применения программы, технические, технико-экономические и специальные требования, предъявляемые к программе, необходимые стадии и сроки разработки, виды испытаний
Пояснительная записка Схема алгоритма, общее описание алгоритма и (или) функционирования программы, а также обоснование принятых технических и технико-экономических решений
Эксплуатационные документы Сведения для обеспечения функционирования и эксплуатации программы

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

Начало работы с отладчиками Python

bestprogrammer.ru

Начало работы с отладчиками Python

Программирование и разработка

На чтение 10 мин Просмотров 1.8к. Опубликовано 25.05.2022

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

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

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

Что такое отладка?

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

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

Вот пример синтаксической ошибки в Python:

# Replace «raccoon» with «ferret» in this list
housepets = [«cat», «dog», «bird», «raccoon»]
housepets.pop()
housepets.append(«ferret»)
print(hosepets)

Код не запускается, потому что вместо этого print(hosepets)он должен быть написан как.print(housepets)

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

В этом примере код использует clear()метод, который удаляет всех животных в housepetsмассиве, а не только енота.

# Replace «raccoon» with «ferret» in this list
housepets = [«cat», «dog», «bird», «raccoon»]
housepets.clear()
housepets.append(«ferret»)
print(housepets)

Таким образом, несмотря на то, что эта программа работает, она все еще не достигает желаемого эффекта.

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

Что делает отладчик?

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

Не полагайтесь исключительно на print()

С моей стороны было бы упущением написать статью об отладке, не упомянув print(). Многие начинающие программисты Python и программисты-самоучки используют print()вызовы для отладки своего кода. Использование print()— это быстрый и простой способ узнать, присваивается ли переменной ожидаемое значение.

Однако размещение print()вызовов после каждой переменной для определения того, где находятся ваши ошибки, неэффективно и может стать неуправляемым с большими объемами кода.

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

fifteen = 300/45
#print(fifteen)
sum = fifteen + ten — five
x = «The sum is equal to 30! «
print(sum == 30)

Здесь программа работает, но не достигает желаемого результата.

Если бы вы работали с более чем несколькими переменными, проверка всех их значений с использованием print()быстро стала бы утомительной.

Как начать работу с pdb модулем Python

Что такое pdb модуль?

Модуль pdbпредставляет собой стандартный отладчик, который поставляется со всеми версиями Python. Итак, если на вашем компьютере уже установлен Python, у вас уже есть pdb. Pdb поддерживает установку условных точек останова, пошаговое выполнение на уровне исходной строки, проверку кадров стека, листинг исходного кода и оценку кода Python в контексте кадра стека [1].

Читайте также:
Opera preinstall data что это за программа на Андроид

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

Как запустить отладчик

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

import pdb; pdb.set_trace()

Другой способ — импортировать отладчик в интегрированную среду разработки и обучения Python (IDLE) и запускать в нем ваш модуль.

Вы также можете вызвать отладчик из командной строки. Вот мини-учебник о том, как вы можете сделать именно это.

С помощью командной строки :

Сначала откройте терминал (окно командной строки) и перейдите к программе, которую необходимо отладить.

Затем импортируйте pdb и ваш модуль, затем выполните run()метод pdb, чтобы вызвать метод модуля main.

import pdb import example.py pdb.run(‘example.main()’) string>(1)module>() (Pdb) continue

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

Вы также можете запустить отладчик, выполнив в терминале следующую команду:

python -m pdb example.py

Если вы используете Python 3, используйте это:

python3 -m pdb example.py

Пошаговый код Python

Пошаговое выполнение — это процесс прохождения кода по одной строке за раз. Для этого можно использовать команду step или s.

C:Usersyourname>cd c:debugging101 c:debugging101>python -m pdb example.py > c:debugging101example.py(2)module>() -> def main(): (Pdb) step > c:debugging101example.py(4)module>() -> def doubler(a): (Pdb) s > c:debugging101example.py(9)module>() -> for i in range(1,10):

В строках типа c:debugging101example.py(4)()число в скобках указывает строку, в которой находится ошибка. Вы можете использовать args или a для вывода текущего списка аргументов на экран. Еще одна полезная команда — это команда jump или j, за которой следует пробел и номер строки, к которой вы хотите перейти. Это позволяет сразу переходить к нужной строке.

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

Точка останова — это строка в коде, где вы хотите приостановить выполнение. Вы можете установить точки останова, вызвав команду break или b, после чего следует пробел и номер строки, на которой вы хотите сделать перерыв. Если вы хотите указать точку останова в другом файле, вы можете поставить перед номером строки имя файла и двоеточие.

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

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

В этом примере мы установили точку останова в строке 6.

c:debugging101>python -m pdb example.py > c:debugging101example.py(4)module>() -> def doubler(a): (Pdb) break 6 Breakpoint 1 at c:debugging101example.py:6 (Pdb) c > c:debugging101example.py(6)doubler() -> result = a*2

Оттуда вы можете использовать аргументы или команду для вывода списка аргументов на экран.

Удобная справочная таблица для команд pdb

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

Команда Описание
break или b Без аргумента это покажет все точки останова. С аргументом функции эта команда установит точку останова на первом выполняемом операторе этой функции.
continue или c Продолжить выполнение, остановить только при обнаружении точки останова.
down Перемещает область действия вниз по стеку вызовов функций на один уровень.
help или h Без аргумента это напечатает список доступных команд. С помощью команды в качестве аргумента напечатайте справку для этой команды. help pdbотображает полную документацию (строку документации pdbмодуля). Поскольку аргумент команды должен быть идентификатором, help execего необходимо ввести, чтобы получить справку по !команде.
jump или j Устанавливает следующую строку, которая будет выполнена. jumpпозволяет вам вернуться назад, чтобы снова выполнить код, или перейти вперед, чтобы пропустить код, который вы не хотите запускать. Вы не можете использовать jumpв середине forцикла или выйти из finallyпредложения.
next или n Продолжайте выполнение до тех пор, пока не будет достигнута следующая строка в текущей функции. Останавливается за пределами вызываемой функции.
return или r Продолжайте выполнение, пока текущая функция не вернется.
step или s Выполнять программу до следующей строки в программе. Останавливается внутри вызываемой функции.
tbreak Временная точка останова, которая автоматически удаляется при первом попадании.
up Перемещает вашу область вверх по стеку вызовов функций к текущей (по умолчанию) функции.
quit или q Закрывает отладчик и прерывает сеанс отладки.

Эти команды взяты из официальной документации отладчика Python [2]. Проверьте это для более обширного списка команд!

Дополнительные способы отладки в Python: IDE

Pdb — это отладчик командной строки, но многие IDE включают средства отладки, которые выглядят более привлекательными, а иногда и более простыми в использовании.

PyCharm

Одна из лучших IDE для работы с Python — PyCharm от JetBrains. PyCharm был разработан специально для использования с Python! Как Python IDE, вы можете ожидать, что PyCharm удовлетворит потребности, специфичные для Python. PyCharm также поддерживает классические функции отладки, такие как точки останова и пошаговое выполнение.

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

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

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

Отладчик Visual Studio

Microsoft Visual Studio (VS) — еще одна полнофункциональная IDE, но она была разработана для поддержки множества различных языков программирования и бесплатна как для профессиональных, так и для личных целей. VS IDE включает в себя редактор кода VS Code с интуитивно понятным и простым в использовании интерфейсом. Новичкам может быть проще ориентироваться в Microsoft VS IDE, чем в PyCharm.

Вы можете отлаживать файл Python с помощью редактора кода, щелкнув «Выполнить» -> «Начать отладку» или нажав F5, чтобы запустить текущий файл, в котором вы находитесь. Как и PyCharm, VS Code также поддерживает использование точек останова и пошагового выполнения, но имеет дополнительное преимущество эмулятора терминала, позволяющего работать в любой оболочке, установленной на вашем компьютере. Так что, если вы хотите работать в Linux, это абсолютно правильный вариант.

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

VS Code также упрощает настройку процесса отладки в настройках по мере необходимости и обеспечивает поддержку различных библиотек Python.

И PyCharm, и Visual Studio обеспечивают отличную поддержку Git и GitHub.

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

Всегда приятно видеть, как растет сообщество Python, и мы надеемся, что вы разовьете навыки, необходимые для того, чтобы стать замечательным программистом.

Источник: bestprogrammer.ru

Как использовать отладчик pdb для Python приложений

Как использовать отладчик pdb

pdb — это встроенный отладчик для Python, который, в отличие от print() , позволяет отлаживать программу в процессе её работы.

Отладка Python-кода с помощью print

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

Но самая большая проблема в использовании print() — это необходимость вносить изменения в код и перезапускать приложение, чтобы увидеть изменения. Давайте разберёмся, почему отладчики эффективнее.

Команды Python-отладчика

Главная задача отладчика — предоставить возможность заглянуть в процесс выполнения кода. Так, например, можно просмотреть стек вызовов, узнать значения переменных, установить брейкпоинты или запустить выполнение кода построчно. Можно провести аналогию с тем, как автомеханик заглядывает под капот автомобиля и начинает перебирать деталь за деталью, пока не найдет причину поломки.

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

Data Scientist Открытие , Москва, можно удалённо , По итогам собеседования

Python есть встроенный отладчик под названием pdb. Это простая консольная утилита, которая обладает основной функциональностью для отладки кода. Но если вы ищете что-то более продвинутое, то стоит обратить внимание на ipdb – отладчик с функциональностью из IPython.

Проще всего вызвать отладчик pdb из кода, где вы работаете:

import pdb; pdb.set_trace()

Как только интерпретатор доберётся до этой строчки, запустится отладчик и в консоли будут доступны новые команды.

list()

Эта команда покажет часть кода, на выполнении которой сейчас находится интерпретатор. Можно передать два аргумента first и last для просмотра определённого участка кода. Если указать только first, то будет выведен код вокруг искомой строки.

up(p) и down(d)

Эти команды используются для передвижения по стеку вызовов. С их помощью можно отследить, откуда была вызвана текущая функция.

step() и next()

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

break()

Эта команда позволяет создавать брейкпоинты без внесений изменений в код. Ниже разберём этот этап более детально.

Краткий список команд отладчика pdb:

  • args() — выводит аргументы функции;
  • continue() или (cont) — продолжит выполнение до первого брейкпоинта или до завершения программы;
  • help() — выводит список доступных команд или подсказки по определённой команде;
  • jump() — перепрыгивает к выполнению указанной строчки кода;
  • list() — выводит исходный код программы вокруг выбранной строки;
  • expression() — выводит значение выражения;
  • pp — выводит значение в «красивом» виде;
  • quit или exit() — отменяет выполнение программы;
  • return() — завершает выполнение текущей функции.

Продолжаем изучать Python-отладчик

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

Но теперь есть возможность запускать приложение напрямую из отладчика без внесения изменения в код. Для этого воспользуемся следующей командой:

$ python3 -m pdb

Давайте разберём на примере. Есть простое приложение, которое отслеживает рабочее время. Для её работы используется библиотека requests , отвечающая за выполнение HTTP-запросов. Попробуем прервать выполнение во время запроса.

Как это сделать? Запустим приложение через отладчик и установим брейкпоинт внутри библиотеки requests .

$ python3 -m pdb run.py > /Users/. /run.py(1)() -> from TimeLog.app import run_app (Pdb) b requests/sessions.py:555 Breakpoint 1 at /. /lib/python3.6/site-packages/requests/sessions.py:555 (Pdb) c

Как можно заметить, не нужно указывать полный путь до библиотеки. Можно указать относительную ссылку от sys.path . Таким же образом можно отлаживать и ваше приложение.

Теперь куда проще отлаживать код. Не надо вносить изменения в приложение или во внешние библиотеки.

Но что делать, если в приложении происходит много вызовов, а вам надо обработать только какой-то определённый? Можно точно указать условие, при выполнении которого отладчик будет прерывать выполнение приложения.

В данном примере прерывание произойдёт только в случае, если json будет иметь в себе ключ time_entry .

$ python3 -m pdb run.py > /Users/. /run.py(1)() -> from TimeLog.app import run_app (Pdb) b requests/sessions.py:555, json is not None and ‘time_entry’ in json Breakpoint 1 at /Users/. /lib/python3.6/site-packages/requests/sessions.py:555 (Pdb) c

Отладка кода Django

Если вы используете Django, то скорее всего знаете, что, если в настройках значение параметра DEBUG установлено как True , то для каждого исключения будет выводиться отдельная страница с указанием типа исключения, стек вызовов, локальные переменные и т.д.

Если вы хотите прокачать отладчик, то установите django-extensions и используйте команду runserver_plus для запуска сервера. Также можно указать пароль для доступа к отладке следующей командой:

WERKZEUG_DEBUG_PIN=1234 ./manage.py runserver_plus

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

Если вы используете django-extensions, то получите страницу со всеми вызовами, кодом и окном отладчика.

Процесс отладки осуществляется с помощью WSGI библиотеки Werkzeug.

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

Источник: tproger.ru

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