Aktualności i artykuły

Opublikowano: 30 czerwca 2014
Kategoria wpisu: poradnikiprogramowanie

Batch the bug

Czyli debugowanie programów wsadowych ILE RPG

O ile proces wyłapywania błędów kontrolując wykonanie programu interaktywnego nie przysparza problemów, to w przypadku programu wsadowego operacja jest znacznie bardziej skomplikowana. Jak przygotować i uruchomić debugowanie programu wsadowego ? Oto instrukcja jak wykonać to krok po kroku:

  • przygotuj źródło programu kompilując go z następującymi parametrami DBGVIEW (*SOURCE) OPTION(*SRCSTMT:*NODEBUGIO)

  • zatrzymaj kolejkę zadań do której zostanie skierowany program wsadowy po uruchomieniudebugowanie
  • wystartuj zadanie wsadowe
  • zatrzymaj zadanie (status HOLD), które dzięki wstrzymanej kolejce nie wykonuje się
  • zwolnij zatrzymaną kolejkę zadań
  • uruchom „serwisowanie” uruchomionego zadania za pomocą komendy STRSRVJOB JOB(numer_zadania/użytkownik/nazwa_zadania) gdzie parametry komendy pochodzą z uruchomionego zadania wsadowego
  • uruchom debugger komendą STRDBG PGM(biblioteka/program) UPDPROD(*YES)
  • zostaniesz przeniesiony na ekran wyświetlający źródło programu, lecz nie próbuj jeszcze debugować czy dodawać punktów zatrzymania programu (breakpoints). By można było debugować, zadanie musi być aktywne. Wyjdź z ekranu za pomocą F12
  • zwolnij zatrzymane zadanie wsadowe
  • w momencie gdy zadanie stanie się aktywne, pokaże się okno startu zadania serwisowego. Użyj F10 by wprowadzać komendy debugera’a
  • za pomocą komendy DSPMODSRC wróć do źródeł programu i dodaj punkty zatrzymania w programie (F6)
  • użyj klawisza F12 by wznowić działanie programu i raz jeszcze F12 by wrócić do okienka komendy serwisowej
  • ENTER spowoduje uruchomienie zadania i proces debugowania rozpocznie się podobnie jak ma to miejsce w zadaniach interaktywnych
  • w momencie zakończenia zadania otrzymasz komunikat „Job being serviced ended”
  • użyj komendy ENDDBG by zakończyć debugowanie i ENDSRVJOB by zakończyć serwisowanie

Proces wydaje się być zagmatwany lecz kilkukrotne jego przejście powoduje, że wykonywanie poszczególnych czynności staje się logiczne i jasne.

 

^