In response to Keven's posting, yes, the stackdump works ok, but does not
return the
PROGRAM-ID value in the Cobblers program but actually returns the values of
the subroutine names. Wasn't exactly what I needed for my apps but it is
reasonably close to a solution...
Brian.
Here's the output:
:TEST.NMPRG
PC=a.00fab864 NL.PUB.SYS/stackdump_prime+$264
NM* 0) SP=41844930 RP=a.01407e78 stackdump2+$844
DP=c0202008 PSP=418447f0 PCPRIV=2
NM 1) SP=418447f0 RP=a.014085bc STACKDUMP+$1e4
DP=c0202008 PSP=41844630 PCPRIV=2
NM 2) SP=41844630 RP=a.014083c4 ?STACKDUMP+$8
DP=c0202008 PSP=41844570 PCPRIV=2
export stub: 179.00006118 TEST.NMPRG.DEV/call_the_subroutine1+$a4
NM 3) SP=41844570 RP=179.00005e04 _start+$74
DP=41646000 PSP=41844330 PCPRIV=3
NM 4) SP=41844330 RP=179.00000000
DP=41646000 PSP=41844130 PCPRIV=3
(end of NM stack)
1) CALL TO STACKDUMP OK
************************************
PC=a.00fab864 NL.PUB.SYS/stackdump_prime+$264
NM* 0) SP=41844b70 RP=a.01407e78 stackdump2+$844
DP=c0202008 PSP=41844a30 PCPRIV=2
NM 1) SP=41844a30 RP=a.014085bc STACKDUMP+$1e4
DP=c0202008 PSP=41844870 PCPRIV=2
NM 2) SP=41844870 RP=a.014083c4 ?STACKDUMP+$8
DP=c0202008 PSP=418447b0 PCPRIV=2
export stub: 179.000063a8 TEST.NMPRG.DEV/call_the_subroutine2+$a4
NM 3) SP=418447b0 RP=179.000061a8 call_the_subroutine1+$134
DP=41646000 PSP=41844570 PCPRIV=3
NM 4) SP=41844570 RP=179.00005e04 _start+$74
DP=41646000 PSP=41844330 PCPRIV=3
NM 5) SP=41844330 RP=179.00000000
DP=41646000 PSP=41844130 PCPRIV=3
(end of NM stack)
2) CALL TO STACKDUMP OK
>+0000>+0000<
Brians World:
Here's the code:
Mainline:
$CONTROL OPTIMIZE=1,VALIDATE,BOUNDS,CROSSREF,POST85,SYNC32
$CONTROL OPTFEATURES=CALLALIGNED,ERRORS=5
IDENTIFICATION DIVISION.
PROGRAM-ID. TEST1.
AUTHOR. BRIAN DONALDSON.
DATE-WRITTEN. JANUARY 2006.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-ERROR-CODE-DOUBLE COMP.
05 WS-ECD-1 PIC S9(04) COMP.
05 WS-ECD-2 PIC S9(04) COMP.
PROCEDURE DIVISION.
A000-MAINLINE.
INITIALIZE WS-ERROR-CODE-DOUBLE.
CALL "call_the_subroutine1" USING WS-ERROR-CODE-DOUBLE.
DISPLAY ">" WS-ECD-1 ">" WS-ECD-2 "<".
STOP RUN.
Sub 1:
$CONTROL DYNAMIC,OPTIMIZE=1,VALIDATE,BOUNDS,CROSSREF,POST85,SYNC32
$CONTROL OPTFEATURES=LINKALIGNED,ERRORS=5
IDENTIFICATION DIVISION.
PROGRAM-ID. TEST2.
AUTHOR. BRIAN DONALDSON.
DATE-WRITTEN. JANUARY 2006.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES. CONDITION-CODE IS C-C.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-ID-NUMBER PIC S9(04) COMP VALUE ZEROES.
LINKAGE SECTION.
01 LS-ERROR-CODE-DOUBLE COMP.
05 LS-ECD-1 PIC S9(04) COMP.
05 LS-ECD-2 PIC S9(04) COMP.
PROCEDURE DIVISION USING LS-ERROR-CODE-DOUBLE.
A000-MAINLINE.
ENTRY "call_the_subroutine1" USING LS-ERROR-CODE-DOUBLE.
PERFORM A100-PROCESS THRU A100-EXIT.
GOBACK.
A100-PROCESS.
INITIALIZE LS-ERROR-CODE-DOUBLE
WS-ID-NUMBER.
CALL INTRINSIC "STACKDUMP" USING \\,
WS-ID-NUMBER,
\\,
\\
END-CALL.
IF C-C = ZEROES THEN
DISPLAY '1) CALL TO STACKDUMP OK'
ELSE
DISPLAY '1) CALL TO STACKDUMP NOT OK'
END-IF.
DISPLAY "************************************".
CALL "call_the_subroutine2" USING LS-ERROR-CODE-DOUBLE.
GO TO A100-EXIT.
A100-EXIT.
EXIT.
Sub 2:
$CONTROL DYNAMIC,OPTIMIZE=1,VALIDATE,BOUNDS,CROSSREF,POST85,SYNC32
$CONTROL OPTFEATURES=LINKALIGNED,ERRORS=5
IDENTIFICATION DIVISION.
PROGRAM-ID. TEST3.
AUTHOR. BRIAN DONALDSON.
DATE-WRITTEN. JANUARY 2006.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES. CONDITION-CODE IS C-C.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-ID-NUMBER PIC S9(04) COMP VALUE ZEROES.
LINKAGE SECTION.
01 LS-ERROR-CODE-DOUBLE COMP.
05 LS-ECD-1 PIC S9(04) COMP.
05 LS-ECD-2 PIC S9(04) COMP.
PROCEDURE DIVISION USING LS-ERROR-CODE-DOUBLE.
A000-MAINLINE.
ENTRY "call_the_subroutine2" USING LS-ERROR-CODE-DOUBLE.
PERFORM A100-PROCESS THRU A100-EXIT.
GOBACK.
A100-PROCESS.
INITIALIZE LS-ERROR-CODE-DOUBLE
WS-ID-NUMBER.
CALL INTRINSIC "STACKDUMP" USING \\,
WS-ID-NUMBER,
\\,
\\
END-CALL.
IF C-C = ZEROES THEN
DISPLAY '2) CALL TO STACKDUMP OK'
ELSE
DISPLAY '2) CALL TO STACKDUMP NOT OK'
END-IF.
GO TO A100-EXIT.
A100-EXIT.
EXIT.
* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *
|