If ADSALIVE is not installed IDMS DEBUGGER can be used as an alternative.
IDMS - All Supported Releases
Component: ADS370
Compile the dialog to be debugged with symbol and diagnostic tables enabled after explicitly checking it out to your user id so that after the compile it will remain checked out to you. To set break points in debugger you will need the name of the response processes in the dialog with the sequence number for each instruction. After compiling the dialog re-select the compile option then the view messages options. This must be done immediately after a compile which is why the dialog must be explicitly checked out. If the dialog is only implicitly checked it will be automatically released by ADSC and messages with the processes will be lost.
This is an example of the screen returned in response to view messages.
BROWSE -ERRORS: DEMODLG20001 COLUMNS 001 079 COMMAND ===> SCROLL ===> CSR *** TOP OF DATA ****************************************** CA-IDMS/ADSERROR ** <PROCESS> DEMO2-PREMAP 0001 100 MOVE 'DEMODLG1' TO DEMO-DIALOG. 200 MOVE EMP-NAME-0415 TO EMP-FIRST-NAME-WRK. 300 MOVE EMP-LAST-NAME-0415 TO EMP-LAST-NAME-WRK . 500 DISPLAY. <PROCESS> DEMO2-ENTER 0001 200 READY ORG-DEMO-REGION USAGE-MODE IS UPDATE. 300 READY EMP-DEMO-REGION USAGE-MODE IS UPDATE. 400 MOVE 'EMPDEMO' TO DB-NAME. 500 OBTAIN CALC EMPLOYEE. 600 OBTAIN CALC EMPLOYEE. 700 MOVE EMP-FIRST-NAME-WRK TO EMP-NAME-0415. 800 MOVE EMP-LAST-NAME-WRK TO EMP-LAST-NAME-0415. 900 MODIFY EMPLOYEE. 1000 RETURN. *** BOTTOM OF DATA *************************************** CA-IDMS/ADSERROR **
To access DEBUGGER for dialog DEMODLG2 type DEBUG DEBUG DIALOG DEMODLG2 and hit ENTER.
It returns with:
DEBUG DIALOG DEMODLG2 DEBUG DIALOG DEMODLG2 DEBUG> DEBUGGING INITIATED FOR DEMODLG2 VERSION CDMSLIB DEBUG>
To set a break point in premap process on the DISPLAY type:
AT 'DEMO2-PREMAP'.#500 and hit enter. It returns with:
AT> 'DEMO2-PREMAP'.#500 ADDED DEBUG>
To set a break point on the instructions at 600 and 700 in the ENTER process use
AT 'DEMO2-ENTER'.#600 and AT 'DEMO2-ENTER'.#700
Hit enter after both commands.
Type EXIT and hit enter to exit DEBUGGER.
At enter next task code execute the dialog and it will stop at the first breakpoint.
AT OFFSET @440 IN DEMODLG2.DEMO2-PREMAP EXPRESSION 'DEMO2-PREMAP'.#500 DEBUG>
At this breakpoint you could verify the content of field EMP-LAST-NAME-WRK with command LIST 'EMP-LAST-NAME-WRK'
It returns the content which is all blanks in this case.
AT OFFSET @440 IN DEMODLG2.DEMO2-PREMAP EXPRESSION 'DEMO2-PREMAP'.#500 DEBUG> LIST 'EMP-LAST-NAME-WRK' LIST 'EMP-LAST-NAME-WRK' 3859C0EA 4040 40404040 40404040 40404040 * * 3859C0F8 40 * * DEBUG>
To continue processing type RESUME and hit enter. In response to resume it executes the DISPLAY commands that writes out the map.
Hit the enter key to execute the enter process and it takes us to the next breakpoint.
AT OFFSET @52C IN DEMODLG2.DEMO2-ENTER EXPRESSION 'DEMO2-ENTER'.#600 DEBUG>
To check the status of the obtain at 500 use LIST 'ERROR-STATUS' OF 'ADSO-STAT-DEF-REC'
LIST 'ERROR-STATUS' OF 'ADSO-STAT-DEF-REC' 3859BE6C F0F3F2F6 *0326 * DEBUG>
The 0326 occurred because the dialog did not set the calc key for the employee record just prior to the obtain. This can be done using DEBUGGER by first displaying the emp-id-0415 field which is the calc key for this record.
LIST 'EMP-ID-0415' LIST 'EMP-ID-0415' 3859F774 F0F0F0F0 *0000 * DEBUG>
Note that it returns the address of 3859F774 for the 4 byte calc key. To set this to a valid calc key such as 0023 use SET @3859F774=X'F0F0F2F3' and hit enter.
It returns:
SET @3859F774=X'F0F0F2F3' OLD 3859F774 F0F0F0F0 *0000 * NEW 3859F774 F0F0F2F3 *0023 * DEBUG>
Type RESUME to execute the next OBTAIN and stop at 700.
Next to check the error status
LIST 'ERROR-STATUS' OF 'ADSO-STAT-DEF-REC' LIST 'ERROR-STATUS' OF 'ADSO-STAT-DEF-REC' 3859F46C F0F0F0F0 *0000 *
It now returns error status of 0000.
To terminate the debug session and clear the breakpoints type QUIT and hit enter.