Hi Robin, I understand now what your issues are, and I have a solution. First, though, let's examine what's going on.





At 6/10/2014 03:18 AM, Robin Atwood wrote:
Dave - Thanks to you and the others that replied.

Your program is running in problem state and has no authority to acquire supervisor state, so z/XDC does not have that authority either.

I can link the module AC(1) but because it's running under the TMP if you issue a MODESET you will get abend 047.

Yes, that is what happens when JSCBAUTH=0... MODESET abends with an s047.






This is a puzzling comment, since z/XDC's honoring the //XDCREFR8 and //XDCRENT8 ddnames is not in any way contingent upon the type or program being debugged. There must be missing information here.

I put both DD statements in the STC's JCL. Surely the module with the hook has already been loaded into key 0 storage before the hook is executed and therefore the DD statements can make no difference?

Yes, that certainly is true. When the load modules already reside in key=0 storage, then yes, //XDCREFR8 and //XDCRENT8 will have not effect.






The DBC640Q WTOR is issued and I *can* connect using XDCCDF (we sorted out the RACF stuff). I just cannot set any breakpoints.

Understood:

- Your program is running in problem state with execution key=8 and no authorization (JSCBAUTH=0).

- z/XDC inherits the authority of its environment, so it too is running in problem state with execution key=8 and no authorization.

- Your target load modules are reentrant and already preloaded into key=0 storage.

  - So z/XDC cannot set breakpoints into your target load modules.






So how do I debug this beast?

Here's how... Once your problem state debugging session has started, you need to find a way to make it run in supervisor state. To do that...

- You need to start up an unrelated authorized debugging session within a second TSO session. (The easiest way to do that is to go to ISPF's Command Shell [=6] and issue "XDCCALLA IEFBR14".)

- Then (RACF permitting) you can use that session to switch your problem state debugging session into supervisor state.

- Then you will be able to proceed with your original (now supervisor state) debugging session and set breakpoints to your heart's content.



To assist with this process, I have written three command scripts named MAKEAUTH, MAKEAUT2 and MAKEAUT3. You can find them in the DBCOLE.XDCZ1D.XDCCMDS library, and you can run them with z/XDC's READ command.


You will find detailed step-by-step instructions in the scripts' commentary, starting with the MAKEAUTH script.

RACF permitting, this should go off without a hitch, but if you do run into RACF issues, get back in touch and we'll sort that out too.



Important! This process allows z/XDC to run in supervisor state, but it does not in any way change the authorization level of the target execution thread. In other words, the program being debugged will continue to run in problem state with execution key=8 and no authorization (JSCBAUTH=0).






IHTH,
Dave Cole

Thanks
Robin

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to