[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Thema: Debugger

  1. #1
    Registriert seit
    May 2002
    Beiträge
    23

    Debugger

    Hallo liebe Helfer,

    ich habe folgende Frage:

    Ich möchte ein RPG-Programm debuggen, das von einem anderen
    RPG-Programm aufgerufen wird.

    Wie geht das ??

    Mit STRDBG PGM(programmname) geht es nicht !

    Vielen Dank für eine schnelle Antwort

    Es grüßt freundlich vom Bodensee

    Mario

  2. #2
    Registriert seit
    Jan 2001
    Beiträge
    833
    Hallo Mario,

    wieso geht der STRDBG nicht ?

    Normalerweise gibst Du dem Command STRDBG das Programm
    mit. ( Source sollte natürlich aktuell und vorhanden sein)

    Mit DSPMODSRC kann man noch andere Programme in den Debugmode versetzten und Unterbrechnungspunkte definieren.

    Gruss Michael

  3. #3
    Registriert seit
    Jun 2003
    Beiträge
    61

    Debugger

    Tja, da müsste man wissen ob das Programm interaktiv oder im Batch aufgerufen wird.
    Es gibt zwar eine Möglichkeit auch im Batch
    aufgerufene Programme zu debuggen, ist aber
    etwas aufwendig. Am besten das CL, das dein
    Programm aufruft soweit abändern das es
    interaktiv läuft oder halt den Programmaufruf
    im Programm, fals du kein CL vorgeschaltet hast,und dieses dann mit STRDBG(interaktives
    Programm) dann bei Modulen mit
    F14 die Quelle auswählen.

    Viel Spaß beim Debuggen

  4. #4
    Registriert seit
    May 2002
    Beiträge
    23

    Debugger

    Hallo Shorty,

    erstmal vielen Dank für die schnelle Antwort.

    Ich rufe ein Cl-Programm interaktiv auf, das ein RPG-Programm startet.
    Dieses startet wiederum ein RPG-Programm.
    Mit STRDBG kann ich nur das 1.Programm debuggen !!!

    F14 mit Modulen finde ich leider nicht.

    Das 2.Programm kann ich debuggen, wenn ich es direkt aufrufe.
    Das Programm läuft im Einzelaufruf auch korrekt ab.
    Aber ich müsste es eben testen, wenn es in der Schleife des ersten Programms abläuft.

    Einen Gruß

    Mario

  5. #5
    Registriert seit
    May 2002
    Beiträge
    1.121
    hallo mario.

    also ich sehe da kein problem. du rufst aus dem prog1 ds prog2 auf. also dann einfach
    strdbg prog2
    setzen breakp.
    call prog1

    wenn jetzt das prog1 das prog2 aufruft, so bleibt es an dem 1. brakp. stehen (mal vorraus gesetzt die breakp. sind sinnvoll gesetzt)

    ronald

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.873

    Debug von Batch-Programmen

    Hallo,

    sooo kompliziert ist das Debuggen von Batch-Programmen auch wieder nicht.

    Folgende Schritte sind notwendig:

    1. Start Service Job für den Batch-Job:
    STRSRVJOB JOB(123456/BATCHUSER/BATCHJOB)

    2. STRDBG PGM(MYPGM)
    Ein Break Point kann erst gesetzt werden, wenn der Job aktiv ist.

    3. Ist der Job aktiv erscheint folgende Meldung:
    Der bediente Job wurde aus der Jobwarteschlange freigegeben.
    Eingabetaste drücken, um den Job zu starten oder F10 drücken, um die
    Debug-Befehle für den Job einzugeben.

    Nach dem Drücken der F10-Taste erhält man eine Befehlszeile.

    4. DSPMODSRC eingeben und den 1. Break Point setzen
    Mit F12 / F12 verlassen, bis die oben genannte Meldung erscheint.
    Datenfreigabe und das Programm kann gedebugged werden.

    5. Nach Programm-Ende
    ENDDBG
    ENDSRVJOB

    Voraussetzung:
    RPGIV-Programme/Module sollten mit DBGVIEW *SOURCE
    gewandelt werden
    Bei RGPIII sollten mit OPTION *SRCDBG gewandelt werden.
    Bei OPM-Programmen muss beim Start Debug OPMSRC auf *YES gesetzt werden.

    Das CL-Programm so ändern, dass es interaktiv läuft macht nicht immer Sinn. Wir hatten schon öfter das Problem, dass interaktiv keine Probleme auftraten, wohl aber im Batch (Bibliotheksliste, *LDA o.ä.)

    Wir reden auch tatsächlich von Programmen?
    Könnte es sein, dass kein Programm, sondern ein Service-Programm aufgerufen wird?
    In diesem Fall muss der Start Debugg wie folgt aussehen:
    STRDBG SRVPGM(MYSRVPGM)

    Wenn der Debugger bereits aktiv ist, kann auch auf dem CALL-Statement F22 gedrückt werden und in das aufgerufene Programm oder Prozedur wird verzweigt.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  7. #7
    Registriert seit
    Jun 2003
    Beiträge
    61
    Hallo,

    also wenn ich recht verstehe willst einfach nur 2 Programme gleichzeitig debuggen.
    Dazu mußt ja nur beim STRDBG mit F4 weitere Werte das zweite zu debuggende Prog. angeben.
    Vorraussetzung für das Ganze ist natürlich das wir von ILE-Programmen sprechen.
    Dann mit F14 die jeweilig zu bearbeitende Quelle auswählen und Breakpoints setzen. Den Rest kennst ja sicher.

    shorty

  8. #8
    Registriert seit
    May 2002
    Beiträge
    23

    Debugger

    Hallo Ihr vielen Helfer,

    vielen Dank für diese wahnsinnig große Teilnahme.

    Habe vergessen zu sagen, dass es keine ILE-Programme sind.
    Release = 4.2 also alter Schinken ;-)

    Also ich möchte eigenlich nur das 2.Programmm aufrufen.

    Ich habe mal den Breakpoint gleich am Anfang gesetzt, aber ohne Ergebnis.
    Wenn ich das Programm direkt aufrufe, nimmt er aber die Breakpoints !

    Aber wie gesagt, im Direktaufruf läuft ja das Programm korrekt.

    Serviceprogramme sind es nicht, die Quelle ist vorhanden.

    So langsam verzweifel ich schon.

    Trotzdem noch mal viiieeelen Dank für Eure Mühe.

    Gruß Mario

  9. #9
    Registriert seit
    Aug 2001
    Beiträge
    2.873

    Debugger

    Hallo,

    1. wenn es sich um keine ILE-Programme handelt, sind die Programme dann mit OPTION *SRCDBG umgewandelt?

    2. Gibst Du beim STRDBG OPMSRC = *YES an?

    3. Was passiert, wenn Du einen Break Point auf dass Call-Statement setzt und wenn dieser Break Point erreicht ist F22 gedrückt wird?

    4. Bist Du sicher, dass der Call auch wirklich ausgeführt wird?

    5. Da es sich um OPM-Programme handelt, hast Du versucht deine Programme mit STRISDB zu debuggen?
    Der funktionniert sicher unter V4R2M0 und mit RPGIII-Programmen.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  10. #10
    Registriert seit
    Jan 2003
    Beiträge
    746
    Hallo Leute,

    für nicht-ILE-Programme empfehle ich STRISDB, bevor dann aus dem gedebuggten Programm (hier CLP) ein CALL erfolgt, kann man das nächste Programm mit ADDISDBPGM (RPGPGM) hinzufügen, u.s.w.

    viel Erfolg,

    Robert

  11. #11
    Registriert seit
    Jun 2003
    Beiträge
    61
    Hallo Mario,

    so was dacht ich mir schon fast.
    Aber wie ich grad lese hast eh von
    Brigitta ne gute Anleitung bekommen.
    Vielleicht noch n kleiner Tip,
    nie den Brakepoint am Anfang setzen.
    Besser erst mal an einen sicheren Punkt,
    der auch 100%tig angesprochen wird.
    Debugst Du auch wirklich das richtige Programm?
    Mit WRKOBJ *ALL/Programmnamen kannst sehen
    ob Du vielleicht das Programm in verschiedenen
    Lib's umgewandelt hast.
    Nur so nebenbei, manchmal denkt man nicht an
    das Einfachste

    Gruß aus dem Chiemgau
    shorty

  12. #12
    Registriert seit
    Jul 2003
    Beiträge
    63
    Wenn wir allerdings von Nicht-ILE sprechen, dann ist das Mittel der Wahl STRISDB. Hiermit kann man mehrere Programme debuggen und sogar schon laufende interactive oder Batch-Programme (sehr wichtig bei vermutetem Endlos-Loop. Außerdem kann man Variable und deren Wert beobachten und verändern (auch sehr wichtig beim Endlosloop; Bezugszahl für Schleife auf *ON setzen und Ende).
    Einfach STRISDB und F4 und mit dem Cursor nach ganz oben und F1.

    Klaus Hardy

Similar Threads

  1. iSeries System Debugger
    By Rolandus in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 26-09-06, 08:22
  2. ILE Debugger
    By ExAzubi in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 06-06-06, 10:28
  3. Debugger
    By roli in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 13-03-06, 14:38
  4. Literatur über DEBUGGER
    By Sulla in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 13-03-06, 10:30
  5. Debugger Problem
    By Cassius in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 13-06-02, 14:26

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •