Patrik wrote:
Does this mean, there is no debugger-centric documentation?
(This a a very abbreviated answer - I could probably write a book on IBM i program debugging...)
I never found printed documentation or PDF's that provide the examples found within the help text within the STRISDB and STRDBG commands. After starting either debugger, type HELP on the debugger command line to see the online help text.
Sub-question: What is the key difference between strdbg and strisdb?
There are numerous differences between STRISDB and STRDBG, but the important ones are:
- STRISDB only works for OPM programs and there must be a matching source member on the system for the debugger to use.
- STRISDB will also by default call the program for you and you must supply any necessary parms and can also start debugging a running job on the system.
- The commands inside the debuggers are very different
(example: DSP shows the value of variables in STRISDB, EVAL does the same in STRDBG)
- Debugging with STRDBG is a multi-step process
STRDBG and then CALL PGM
- Debugging a batch job also requires STRSRVJOB then STRDBG to set a breakpoint
https://www.ibm.com/docs/en/i/7.4.0?topic=job-debugging-that-is-running
- STRDBG requires the program being debugged to have observability
(For example, in my JDE shop, the Oracle-supplied program objects have had observability removed,
so in order to debug the pristine code you must compile it first -
I typically compile the program to QTEMP library and debug it from there)
- Additionally, in order to debug OPM programs using STRDBG, you must:
a) Compile the OPM program using OPTION(*SRCDBG) or OPTION(*LSTDBG)
Example: CRTCLPGM PGM(SJL/TESTX) SRCFILE(SJL/QCLSRC) SRCMBR(TESTX) OPTION(*LSTDBG)
b) STRDBG PGM(SJL/TESTX) OPMSRC(*YES) and add a breakpoint
c) CALL PGM(SJL/TEXT)
Regards,
Steve Landess
(512) 289-0387
As an Amazon Associate we earn from qualifying purchases.