Выполнение скрипта в режиме отладки |
Для выполнения скрипта в режиме отладки необходимо его выбрать в списке и нажать кнопку запуска в режиме отладки . В результате будет запущена программа IDLE (интегрированная среда разработки) в режиме редактирования файла скрипта.
Для запуска скрипта на выполнение необходимо нажать F5 или выбрать пункт меню Run/Run Module. Для пошагового выполнения скрипта необходимо: - запустить оболочку Shell (меню Run/Python Shell); - в меню оболочки Debug включить опцию Debugger.
Появится окно управления отладкой, в котором необходимо включить опцию Source. Для просмотра значений локальных переменных нужно включить опцию - Locals, глобальных - Globals.
Для отладки доступны команды (кнопки): - Go – продолжить без пошаговой отладки до точки останова. - Step – выполнить текущую строку и перейти к следующей - Over – если текущая строка содержит вызов функции, нажмите эту кнопку, чтобы войти в эту функцию - Out – выполнить и выти из функции - Quit – закончить выполнение.
Точку останова можно указать путем вызова всплывающего меню по нажатию правой кнопки мыши над нужной строкой.
После установки точки останова строка подсветится желтым цветом. Для выполнения до точки останова требуется нажать Go.
Чтобы обеспечить автономное выполнение скрипта в режиме отладки автоматически формируется копия скрипта с именем debug_имя_скрипта.py рядом с исходным скриптом. В копию скрипта включаются 2 блока. Один записывается в начале скрипта, другой - в конце. Блоки имеют примерно следующее содержание:
#debug.begin1 import sys sys.path.append('C:/Users/Public/Documents/Panorama/py_mapapi14') import mapsyst debug_syspath = 'C:/Program Files/Panorama/Panorama14/' mapsyst.setuppanlib(debug_syspath) import mapdebug debug_docname = 'C:/111/test3d/debug_moveobjects.mpt' debug_hmap, debug_hobj = mapdebug.open(debug_syspath, debug_docname) if debug_hmap == 0: sys.exit() #debug.end1 #debug.begin2 MoveObjects(debug_hmap, debug_hobj) mapdebug.close(debug_hmap, debug_hobj) #debug.end2
Если в процессе отладки были внесены правки в исходный код скрипта, то можно удалить вставленные блоки и переименовать скрипт. Первый блок обеспечивает настройку доступа к прототипам функций и структур MAPAPI, библиотекам ГИС, составу данных и выделенным на картах объектам, которые были в момент формирования копии скрипта. Второй блок обеспечивает вызов заданной функции, передачу входных параметров и закрытие данных по окончании ее выполнения. Если необходимо выполнить отладку в другой среде, то после вызова отладчика и формирования копии скрипта можно закрыть программу IDLE и выполнить отладку копии скрипта в другой программе. Если в процессе выполнения скрипта выполняется редактирование карты и карта имеет формат SITX, то при запуске скрипта в отладчике доступ на редактирование будет закрыт. Формат SITX предоставляет доступ на редактирование первой программе, которая его открыла. Поэтому необходимо либо отсортировать карту со сменой формата на SIT либо после формирования копии скрипта закрыть отладчик, закрыть ГИС и запустить из Проводника программу отладки.
|