PDA

View Full Version : ILE-RPG in Stapel debuggen



Seiten : [1] 2

rr2001
16-01-08, 10:22
hallo Leute,
wie kann man ein ILE-RPG-PGM debuggen, welches als
Stapelprogramm ausgeführt wird.

Bei traditionellen RPG kann man ja mit strsrvjob
und strdbg vorgehen.

Bei ILE-RPG funktioniert das aber nicht.

Wer hat das schon gemacht?

Danke für Eure Vorschläge.

BenderD
16-01-08, 10:49
so? dann muss das völlig neu sein, gestern ging das bei mir noch!!




Bei traditionellen RPG kann man ja mit strsrvjob
und strdbg vorgehen.

Bei ILE-RPG funktioniert das aber nicht.

Fuerchau
16-01-08, 10:56
Das funktioniert bei ILERPG ganz genauso.

Was genau funktioniert denn bei dir nicht ?

Ggf. fehlt beim CRTRPGLE ... DBGVIEW(*SOURCE).

rr2001
16-01-08, 12:48
ich gehe folgendermaßen vor:

strsrvjob...
strdbg programmname
dann erscheint die Source
möchte mit F6 Breakpoint hinzufügen ->folgende Meldung

Befehl nicht zulässig, solange gewarteter Job nicht aktiv ist.

sobald der Job aktiv ist und ich mit addbkp arbeiten möchte,
kommt die Fehlermeldung
Kein Standardprogramm vorhanden.

will ich dann mit chgdbg das Standardprogramm ändern,
kommt die Fehlermeldung
Programm xy in der OPM-Testhilfeumgebung nicht aktiv.

wenn ich addpgm mache kommt die Meldung
Befehl für Binderprogramme ungültig.

Fuerchau
16-01-08, 14:11
Das ist das generelle Problem mit Batch-Debug.

Breakpoints können leider nur gesetzt werden, wenn der Job aktiv ist. Das hat mit ILE gar nichts zu tun.

Du musst den Job erst mal loslaufen lassen, bevor du Breakpoints setzt.
Da der Job aber ggf. schon fertig ist, bevor du die Chance hast, musst du dir eine sinnvolle Wartemöglichkeit einfallen lassen.

Z.B.:

Im Dialogjob einen ALCOBJ *EXCL auf ein Testobjekt machen.
Ein CLP submitten, dass auf das gleiche Objekt wartet.
Dann den Debugger starten und Breakpoints setzen.
Anschließend per DLCOBJ im Dialogjob das Objekt wieder freigeben.

Du kannst auch mit einer INQ-Nachricht (SNDPGMMSG) arbeiten, die ja auch auf eine Antwort wartet.

rr2001
16-01-08, 14:18
so einfach ist das mit ILE? :-)

beim traditionellen RPG bleibt der Job vor Beginn stehen und man kann in aller Ruhe die Breakpoints setzen.

Mich würde interessieren, wie einfach die Vorgehensweise
von Bender sich diesbezüglich gestalten würde.

Fuerchau
16-01-08, 15:22
Ich weiß nicht wie du das bei OPM-Programmen machst.
Aber Breakpoints wurden bei mir in inaktivem Job noch nie akzeptiert.

Pikachu
16-01-08, 16:17
So müßte es gehen:

SBMJOB CMD(CALL PGM(Bibliothek/Programm)) Job(Name) HOLD(*YES)

STRSRVJOB JOB(Nummer/Benutzer/Name)
STRDBG PGM(Bibliothek/Programm)
F12=Wiederaufnehmen

RLSJOB JOB(Nummer/Benutzer/Name)
F10=Befehlseingabe
DSPMODSRC

F10=Step oder Unterbrechungspunkte setzen und F12=Wiederaufnehmen
F12=Abbrechen
Eingabetaste

Programm wie gewohnt warten
F3=Verlassen

ENDDBG
ENDSRVJOB

Fuerchau
16-01-08, 16:44
Das Problem hier ist der RLSJOB, da hier der Job ja sofort startet und mein Programm ggf. schon fertig ist, bevor ich zu den nächsten Schritten komme.

Pikachu
16-01-08, 16:54
Das Problem hier ist der RLSJOB, da hier der Job ja sofort startet und mein Programm ggf. schon fertig ist, bevor ich zu den nächsten Schritten komme.
Da hab ich wohl einen gut erzogenen Job erwischt, denn er fragt sofort nach dem RLSJOB nach, wie es weitergehen soll und wartet dann brav ab. ;)