Visual studio python debugging

Шаг 4. Выполнение кода в отладчике

Область применения:yesVisual StudionoVisual Studio для Mac noVisual Studio Code

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

    Замените код в файле PythonApplication1.py приведенным ниже кодом. Этот вариант кода расширяет make_dot_string , что позволяет изучать отдельные шаги в отладчике. Он также помещает цикл for в функцию main и выполняет его явным образом, вызывая эту функцию.

from math import cos, radians # Create a string with spaces proportional to a cosine of x in degrees def make_dot_string(x): rad = radians(x) # cos works with radians numspaces = int(20 * cos(rad) + 20) # scale to 0-40 spaces st = ' ' * numspaces + 'o' # place 'o' after the spaces return st def main(): for i in range(0, 1800, 12): s = make_dot_string(i) print(s) main() 

Параметр отладки Python, чтобы закрыть окно вывода при нормальном завершении работы программы

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

  • Установите точку останова в операторе for , щелкнув один раз серое поле возле этой строки или поместив курсор в этой строке и выбрав команду Отладка>Точка останова (клавиша F9). В сером поле появляется красная точка для указания точки останова (как показано ниже стрелкой): Задание точки останова
  • Снова запустите отладчик (F5), и вы увидите, что выполнение кода остановится в строке с этой точкой останова. Здесь можно просмотреть стек вызовов и переменные. Переменные, относящиеся к области действия, приводятся в окне Видимые, если они определены. В нижней части этого окна можно также перейти к представлению Локальные.В нем отображаются все переменные, которые найдены средой Visual Studio в текущей области действия (включая функции), даже если они еще не определены. Пользовательский интерфейс с точкой останова для кода Python
  • Обратите внимание на панель инструментов отладки (показана ниже) в верхней части окна Visual Studio. Эта панель инструментов предоставляет быстрый доступ к наиболее часто используемым командам отладки (которые также находятся в меню Отладка). Основные кнопки на панели инструментов отладкиКнопки располагаются слева направо в следующем порядке:
    Читайте также:  Local date time to date java
    Кнопка Get-Help
    Продолжить (F5) Программа выполняется до следующей точки останова или до конца.
    Прервать все (Ctrl+Alt+Прервать) Приостанавливает работу долго выполняющейся программы.
    Остановить отладку (Shift+F5) Программа останавливается в текущем месте, и работа отладчика завершается.
    Перезапустить (Ctrl+Shift+F5) Программа останавливается в текущем месте и перезапускается в отладчике с начала.
    Показать следующую инструкцию (ALT+NUM*) Переключается на следующую строку кода для выполнения. Эта команда полезна в случае, если вы просматриваете код во время сеанса отладки и хотите быстро перейти к месту, где работа отладчика была приостановлена.
    Шаг с заходом (F11) Выполняет следующую строку кода с заходом в вызываемые функции.
    Шаг с обходом (F10) Выполняет следующую строку кода без захода в вызываемые функции.
    Шаг с выходом (Shift+F11) Текущая функция выполняется до конца, после чего выполнение приостанавливается в вызывающем коде.
  • Выполните применительно к оператору for шаг с обходом с помощью команды Шаг с обходом. Пошаговое выполнение означает, что отладчик выполняет текущую строку кода, включая все вызовы функций, после чего сразу приостанавливает выполнение программы. Обратите внимание на то, как в коде переменная i теперь определена в окнах Локальные и Видимые.
  • Выполните шаг с обходом в следующей строке, в которой вызывается функция make_dot_string . Шаг с обходом здесь нужен для того, чтобы отладчик выполнил всю функцию make_dot_string и приостановил работу, когда она завершится. Внутри функции работа отладчика не останавливается, если в ней нет отдельной точки останова.
  • Выполните еще несколько шагов с обходом, наблюдая за тем, как меняются значения переменных в окнах Локальные и Видимые.
  • В окне Локальные или Видимые в столбце Значение дважды щелкните поле переменной i или s , чтобы изменить ее значение. Чтобы применить изменение, нажмите клавишу Enter или щелкните в любой области за пределами поля со значением.
  • Продолжите пошаговое выполнение кода с помощью команды Шаг с заходом. Шаг с заходом означает, что отладчик заходит во все вызываемые функции, о которых у него есть отладочные сведения, например make_dot_string . Внутри функции make_dot_string вы можете изучать ее локальные переменные и пошагово выполнять ее код.
  • Продолжайте пошагово выполнять код с помощью команды Шаг с заходом и обратите внимание на то, что после достижения конца функции make_dot_string вы возвращаетесь в цикл for , а переменная s принимает новое значение. Когда вы снова перейдете к оператору print , обратите внимание на то, что выполнение шага с заходом для print не приводит к заходу в эту функцию. Связано это с тем, что функция print не написана на языке Python, а представляет собой машинный код внутри среды выполнения Python.
  • Продолжайте выполнять шаги с заходом, пока вы снова не попадете в функцию make_dot_string . Теперь используйте команду Шаг с выходом и обратите внимание на то, что вы вернетесь в цикл for . Команда Шаг с выходом означает, что отладчик выполняет функцию до конца, а затем автоматически приостанавливает выполнение в вызывающем коде. Эту команду рекомендуется использовать, если вы уже обработали какую-то часть длинной функции, которая требует отладки. Она обработает остальную часть и не будет настраивать явную точку останова в вызывающем коде.
  • Чтобы продолжить выполнение программы после достижения очередной точки останова, используйте команду Продолжить (F5). Так как вы установили точку останова в цикле for , при следующей итерации произойдет остановка.
  • Пошаговое выполнение сотен итераций цикла может быть утомительным, поэтому в Visual Studio к точке останова можно добавить условие. В этом случае отладчик будет приостанавливать выполнение программы в точке останова, только если условие соблюдается. Например, можно настроить условие для точки останова в операторе for так, чтобы выполнение в ней прерывалось, только если значение переменной i превышает 1600. Чтобы задать это условие, щелкните правой кнопкой мыши красную точку, обозначающую точку останова, и выберите пункт Условия (сочетание клавиш Alt+F9>C). В появившемся всплывающем окне Параметры точки останова введите i > 1600 в качестве выражения и выберите Закрыть. Нажмите клавишу F5, чтобы продолжить работу, и обратите внимание на то, что до того, как произойдет следующий останов, будет выполнено несколько итераций. Задание условия для точки останова
  • Чтобы программа выполнялась до конца, отключите точку останова, щелкнув в поле точку правой кнопкой мыши и выбрав команду Выключить точку останова (CTRL+F9). Затем выберите команду Продолжить (или нажмите клавишу F5), чтобы запустить программу. Когда выполнение программы завершится, сеанс отладки в Visual Studio будет закрыт и вы вернетесь в режим редактирования. Можно также удалить точку останова, выбрав его точку или щелкнув правой кнопкой мыши точку и выбрав Удалить точку останова. При этом также удаляются все ранее заданные условия.
  • Читайте также:  Тег INPUT, атрибут value

    В некоторых ситуациях, например, когда не удается запустить интерпретатор Python, окно выходных данных может автоматически закрываться сразу после появления, из-за чего увидеть сообщения об ошибках невозможно. Если такое происходит, в обозревателе решений щелкните проект правой кнопкой мыши, выберите пункт Свойства, откройте вкладку Отладка и добавьте -i в поле Аргументы интерпретатора. Этот аргумент вынуждает интерпретатор перейти в интерактивный режим после завершения программы, оставив окно открытым, пока вы не нажмете клавиши CTRL+Z>ВВОД для выхода.

    Источник

    Оцените статью