Отладка фоновых задач

Часто, возникает потребность трассировки тех или иных фоновых процессов. Одно дело, если мы сможем сделать все это в системе разработки.
1. Делаем бесконечный цикл с выходом по условию.
2. Запускаем программу
3. Переходим в sm50, выбираем наш процесс
4. В меню выбираем Администрирование->Программа->Отладка
5. Открывается экран отладки, в нем мы меняем значение нашей переменной, чтобы выйти из бесконечного цикла и начинаем отладку.

Однако, бывают случаи когда этот метод не работает. Т.к., например, в продуктивной системе нельзя менять значения переменных в отладчике(Можно конечно делать временную задержку вместо бесконечного цикла). Да и нести такой код в продуктив как-то не очень красиво.
В таких случаях можно воспользоваться ФМом k_plan_wait_for_debugging.

Вызываем ФМ k_plan_wait_for_debugging в нужном месте нашей программы с параметрами.
Например:

Screenshot_1

Далее, если нам необходима отладка, прописываем эти параметры в таблице t811flags.
Запускаем нашу программу и переходим в SM50/SM51.
Находим нужный процесс, выделяем его и в меню выбираем Администрирование->Программа->Отладка

В открывшемся окне отладки, если есть полномочия, можно поменять значение переменной lb_exit на "X". Или подождать пока не кончится время задержки.

Если отладка больше не нужна, удаляем параметры из таблицы t811flags.

Все, ФМ больше не будет давать нам задержку.

Отладка фоновых задач: 1 комментарий

  1. Можно в Sm37 отметить джоб, и выполнить команду JDBG, откроется отладчик. Если есть точка остановки в коде, то можно нажать F8, иначе аккуратненько по стеку добраться до нужной программы.
     

Добавить комментарий

Ваш адрес email не будет опубликован.