Инструкция по использованию отладчика
Использование отладчика (Debugger)
Введение: назначение отладчика
Как известно, отладчик предназначен для пошагового выполнения программ с целью наблюдения за значением переменных и управления их значениями. Его используют при:
- Поиске ошибок в работе программы,
- Определении последовательности обращений к данным,
- Отслеживании алгоритма расчета значений.
Существуют несколько способов запуска исполнения программного кода в режиме отладки:
- Из специализированных транзакций
- Из навигатора объектов SE80 – Program – Test –Debugging
- Из ABAP- редактора SE38 – Program – Execute – Debugging (Рис.1);
- Из исходного кода Program – Test – Debugging;
- Установка точек прерывания через ABAP - редактор
- В любом окне системы:
- Из любого экрана System – Utilities – Debug ABAP
- Из любого экрана вводом «/h» в командном окне (Рис.2)
Рис. 1 Транзакция SE38 –запуск отладчика
Рис. 2 Запуск отладчика в любом окне системы
В том случае, когда известно имя выполняемой программы, удобно воспользоваться ABAP-редактором. Если же имя выполняемой программы неизвестно, либо программа имеет сложную структуру вызова, то удобнее воспользоваться вызовом отладчика с помощью команды «/h».
Вход в отладчик (возможен двумя путями):
- Установка точек прерывания в исполняемой программе
- Выполнение программы в режиме отладки.
Точка прерывания – сигнал в строке кода, который вызывает прекращение выполнения программы на этой строке и запускает ABAP-отладчик.
Перезапуск отладчика
- Находясь в отладчике, необходимо выбрать: Debugging ® Restart. При этом режим отладки прекратится, и система вызовет начальный экран, из которого отладчик был запущен.
Выключение отладчика (продолжить выполнение программы в обычном режиме)
- Без выхода из отлаживаемой программы: Debugging ® Debugging off
Выход из отладчика с выходом из программы
- Находясь в отладчике: Debugging ® Exit
Выход из режима отладки с последующим выполнением программы имеет особенность – режим отладки может быть возобновлен в случае наличия точек прерывания в модуле программы.
Интерфейс
Отображение исходного кода
Позиционирование на указанном столбце кода
- Ввести номер столбца и нажать Enter.
Позиционирование на указанной строке кода
- Ввести номер столбца и нажать Enter.
Увеличение фрагмента кода
- Нажать кнопку . Код отображается на весь экран.
Позиционирование на текущем операторе
- Нажать кнопку .
Доступные способы отображения данных
- Fields – демонстрация/изменение содержимого полей
- Table – демонстрация/изменение содержимого внутренних таблиц
- Breakpoint – демонстрация /удаление до последующих 30 точек прерывания.
- Watchpoint – демонстрация/изменение/удаление точек наблюдения
- Calls – демонстрация перечня событий программы и последовательности их вызова до момента точки прерывания. Последнее вызванное событие отображается в верху списка. При завершении события оно удаляется из списка.
- Overview – обзор структуры программы: события, подпрограммы и модули.
- Settings – текущие настройки отладчика.
Управление отладкой
- Выполнить отдельный шаг (F5) или кнопка или меню Debugging ® Control ® Single Step
Позволяет выполнить оператор в текущей строке с заходом в вызываемую подпрограмму/функцию/программу (Рис. 3)
Рис. 3 Отладчик
- Выполнить (F6) или кнопка или меню Debugging ® Control ® Execute
Позволяет выполнить оператор в текущей строке с обходом вызываемой подпрограммы/функции/программы
- Выполнить Возврат (F7) или кнопка или меню Debugging ® Control ® Return
Возвращает из вызываемой подпрограммы/функции/программы в главную программу
- Выполнить Дальше (F8) или кнопка или меню Debugging ® Control ® Run
Запускает выполнение программы до следующей точки прерывания
Просмотр/изменение значений полей
- Для просмотра значения поля необходимо скопировать его название в нижней части экрана:
Нажмите Enter, значение поля отобразится.
Так же можно отобразить значение поле для просмотра двойным щелчком по этому полю.
- Если выведено много полей для просмотра значений, то их можно пролистывать постранично или построчно кнопками .
- Для удаления всех полей из области просмотра воспользуйтесь кнопкой .
- Постоянно отображаются значения четырёх наиболее важных системных полей:
Sy-subrc –- системная переменная, хранящая код возврата: результат выполнения какого-либо действия. 0 – действие выполнено успешно. Другие значения зависят от исполняемого оператора.
Sy-tabix – текущий индекс строки, читаемой внутренней таблицы.
Sy-dbcnt – число считанных строк из БД
Sy-dynnr – номер экрана.
Можно просматривать значения и других системных переменных из структуры Syst. Для этого необходимо в поле структуры для названия поля переменной sy-<название поля>.
- Можно отобразить значения переменных внешних программ, через которые вы проходили в процессе исполнения. Для этого надо указать имя программы и переменной: (имя программы)имя поля. Например: (SAPMSCLM)ACTION
- Специальные способы отображения:
- подстрока для символьной строки <поле>+<позиция символа>(<количество символов>). Отсчёт позиции символа начинается с 0. Например: sy-datum+2(2)
- Произвольное поле внутренней таблицы: <имя таблицы>[номер строки]-<имя поля>. Напр.: itab[1]-field
- Просмотреть тип переменной можно, дважды щёлкнув по полю, где указано его название.
- Для изменения значения поля в отладчике необходимо отобразить его значение и изменить на требуемое. После чего нажать напротив этого значения. Дальнейшее выполнение программы происходит с использованием нового значения переменной. Если вы не нажмёте эту кнопку, то изменения значения поля не произойдёт.
Просмотр/изменение внутренних таблиц
Для отображения внутренних таблиц переключитесь в режим просмотра таблиц (нажмите кнопку ) и скопируйте название таблицы в поле «ВнутрТаблица».
- С помощью кнопки можно просмотреть перечень ранее просмотренных таблиц.
- С помощью кнопки можно просмотреть журнал использования таблицы.
- Также можно указать формат просмотра таблицы и увеличить область просмотра таблицы.
- Для просмотра определённой строки/поля введите номер строки/название поля в заголовок таблицы
- В отладчике можно изменять содержимое полей таблицы, добавлять и удалять строки.
- Изменение строки: позиционируйте курсор на нужной строке и нажмите кнопку
- Вставка строки в произвольном месте: позиционируйте курсор на строке, перед которой необходимо вставить новую строку и нажмите кнопку
- Добавление строки: для добавления строки в конец таблицы нажмите кнопку
- Удаление строки: позиционируйте курсор на строке, предназначенной для удаления, и нажмите
Прочие функции
- Просмотр
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
ЗарегистрироватьсяУ вас уже есть учетная запись?
Войти
Обсуждения 10
Комментарий от
Евгения Попова
| 29 января 2016, 19:20
Комментарий от
Илья Левченко
| 02 февраля 2016, 07:02
Комментарий от
Антон Сорокин
| 02 февраля 2016, 12:37
С каких пор SE11 стало браузером данных? :)
В SE16 у меня это не сработало, не вижу переменную CODE. Базис 7.40.
Комментарий от
Олег Точенюк
| 02 февраля 2016, 13:59
Антон Сорокин 02 февраля 2016, 12:37
>>Запустите браузер данных необходимой таблицы. (se16, se11).
С каких пор SE11 стало браузером данных? :)
В SE16 у меня это не сработало, не вижу переменную CODE. Базис 7.40.
Комментарий от
Антон Сорокин
| 12 февраля 2016, 17:30
Олег Точенюк 02 февраля 2016, 13:59
Картинку с какого места хотите попасть в отладчик можете привести?
Комментарий от
Антон Сорокин
| 12 февраля 2016, 17:30
Антон Сорокин 12 февраля 2016, 17:30
Вот тут
Комментарий от
Олег Точенюк
| 13 февраля 2016, 14:42
Антон Сорокин 12 февраля 2016, 17:30
Вот тут
Далее уже попадаем в отладчик, но в новых системах мы попадаем в метод:
Вот в этом методе жмем F7 и попадаем уже в модуль с доступом к переменной CODE
В более ранних системах, до 7.40 вроде как сразу попадаешь в модуль где доступна переменная CODE.
Комментарий от
Олег Башкатов
| 07 мая 2017, 11:53
Антон Сорокин 02 февраля 2016, 12:37
>>Запустите браузер данных необходимой таблицы. (se16, se11).
С каких пор SE11 стало браузером данных? :)
В SE16 у меня это не сработало, не вижу переменную CODE. Базис 7.40.
и перед установкой статуса экрана ( set pf-status 'XXXX' excluding excl_tab.) - смотреть на таблицу excl_tab и почистить ее - тогда будут доступны все функции при открытии таблицы.
Комментарий от
Олег Башкатов
| 07 мая 2017, 17:26
Олег Точенюк 13 февраля 2016, 14:42
А вот тут никогда ни не попадали в режим просмотра переменной CODE, в этот режим можно попасть выбрав конкретную запись:
Далее уже попадаем в отладчик, но в новых системах мы попадаем в метод:
Вот в этом методе жмем F7 и попадаем уже в модуль с доступом к переменной CODE
В более ранних системах, до 7.40 вроде как сразу попадаешь в модуль где доступна переменная CODE.
/hs или галочка в настройках.
сам постоянно натыкаюсь, особенно для CRM и SolMan (там нет SE16N)
если нужна точка захожу и ставлю тут
SAPLSETB form SET_STATUS_VAL
и деактивирую, если не нужна
Комментарий от
Евгений Данилович
| 07 июня 2018, 06:38