Dynamic call abend with 0C4



Compuware's QA & Impact Analysis Tools: Xpediter/CICS , Xpediter/TSO, Xpediter/DB2, Xpediter/Xchange, Xpediter/IMS

Dynamic call abend with 0C4

Postby huxianjun » Wed Nov 14, 2018 1:52 am

Hello

I'm trying to Xpediter debug from Cobol program A calling program B with the codes like below:
Prog A:
. . .
CALL WS-PROG-B USING WS-PARMS
. . .

However, it abended with 0C4 when executed the above statement. Then, I changed it to static call as below and it worked fine that I can get into the source codes of PROG-B and debug line by line:
CALL 'PROG-B' USING WS-PARMS

Can anyone help me to understand what difference made by changing from dynamic to static call thus the Xpediter debug worked fine for static call?


Thanks, Roy
huxianjun
 
Posts: 23
Joined: Thu Jul 21, 2016 10:10 pm
Has thanked: 0 time
Been thanked: 0 time

Re: Dynamic call abend with 0C4

Postby Robert Sample » Wed Nov 14, 2018 2:04 am

what difference made by changing from dynamic to static call
A dynamic call means the COBOL program goes into the load library (STEPLIB or whatever) to find the subprogram load module, loads it, and executes it. A static call means the subprogram load module has been linked into the calling program's load module so there is no requirement to go into the load library. There are implications for Xpediter, obviously.
Robert Sample
Global moderator
 
Posts: 3720
Joined: Sat Dec 19, 2009 8:32 pm
Location: Dubuque, Iowa, USA
Has thanked: 1 time
Been thanked: 279 times

Re: Dynamic call abend with 0C4

Postby huxianjun » Wed Nov 14, 2018 3:45 am

Thanks Robert!

Guess the difference is the addressing of the PROG-B being called?
huxianjun
 
Posts: 23
Joined: Thu Jul 21, 2016 10:10 pm
Has thanked: 0 time
Been thanked: 0 time

Re: Dynamic call abend with 0C4

Postby Robert Sample » Wed Nov 14, 2018 4:30 am

Looking on the Internet, I see that if you want to debug program B (the subprogram) when there is a dynamic call, you need to break program A at the CALL statement and issue Xpediter command SOURCE B to be able to see the source of program B. The S0C4 abend means you're attempting to access storage you are not allowed to access. There are a variety of possible reasons (one example: program A has 31-bit addressing while program B is using 24-bit addressing and A passes a parameter to B).
Robert Sample
Global moderator
 
Posts: 3720
Joined: Sat Dec 19, 2009 8:32 pm
Location: Dubuque, Iowa, USA
Has thanked: 1 time
Been thanked: 279 times


Return to Xpediter

 


  • Related topics
    Replies
    Views
    Last post