Did you know that you can use the interactive source debugger to debug RPG programs submitted in batch jobs?
Here are the steps:
- Amend the CL program where the RPG program is called so that message wait will be encountered when run. This can be done by adding SNDUSRMSG command prior to program you wish to debug.
- Once the CL program has run, and it has a MSGW status, issue a STRISDB command on another session:
STRISDB program UPDPRD(*YES) INVPGM(*NO) SRVJOB(*SELECT)The SRVJOB(*SELECT) parameter should enable you to select the job that is in MSGW. Select it from the list of jobs displayed.
- On the other session that has a MSGW, reply to the message with to continue (any reply).
- The debug session should now start, and you will be presented with the source. You can now add breakpoints within the program.
- I just us the command to run the CL program, prompting it to include any parms. Once the CL starts to execute, I F14 to include the RPG program I need to look at. Press F3 to exit the screen and then F17 to let the CL run until the RPG program named above starts. Your solution works, but it seems to have some added steps. I also try to avoid changing programs just to suit test conditions. -- Lou Nocito
- I recently tried this tip. It does work, but it has a few problems. After exiting from the ISDB session, when we tried to edit and save the program source (that was being debugged using STRISDB) we received the "Unable to allocate program source' error" as the object seems to be locked by the previous debug session. I wonder if there is any other step to avoid this error? Shiva Jana