Ok I’m not home presently but will be in a few hours
So first I’ll tell you what I was trying to
I was trying to display the sysadata source code
After test notified me of a break so if
AT +5A
The next line would be
MVC A,B
This worked
The problem was it was here I got stuck I wanted
The user or me to be able to proceed
I.E restore the program R14
And do a GO to the next breakpoint
R14 was save in the clist ( executed at a break point) the breakpoint being
+5A
With the following test subcommand
Copy 14R workarea+4 length(4)
Workarea was obtained earlier in the clist
With this TEST subcommand
GETMAIN length(300) sp(0) equate( workarea )
The program was called in the clist with the following TEST subcommand
Call getinst.getinst.+0 resume parm ( workarea)
Since I used resume in the call statement R14 pointed to the breakpoint
address
The code is on my work computer and I cannt post to IBMMAIN from there
But I’ll type clist instruction later
Thanks
Joe Reichman
On Mon, Oct 14, 2024 at 11:49 AM Mike Shaw <[email protected]> wrote:
> Joe,
>
> We need more information. Is 'user program' the program you are invoking
> with the CALL subcommand?
>
> Where is the code that saved the R14 you want to restore, in your module or
> the program you are using CALL to invoke?
>
> The CALL subcommand doc says that the R14 value set on a CALL subcommand is
> set thusly:
>
> REGISTER 14 WILL CONTAIN A RETURN ADDRESS WHICH WILL CAUSE A CHANGE
> TO COMMAND MODE.
>
> that is NOT the same thing as saying R14 will point to the last breakpoint.
> You have to specify RESUME on the call to have R14 point to the last
> breakpoint.
>
> Show us some code.
>
> Mike Shaw
> MVS/QuickRef Support Group
> Chicago-Soft, Ltd.
>
>
> On Mon, Oct 14, 2024 at 10:41 AM Joseph Reichman <
> [email protected]> wrote:
>
> > Ok
> >
> > Then can you please tell me how do restore
> >
> > The user programs R14 which was saved in the getmained workarea
> >
> > There must be a way to this or else the whole call at a breakpoint
> doesn’t
> > work
> > Should I make a Fake breakpoint in the user program extent and again the
> > only reason I want to stop things
> >
> > Is to restore the user programs 14 and then have it break on the orignal
> > breakpoint without any subcommands such as calling a user program
> >
> > Thank you
> >
> > > On Oct 14, 2024, at 10:06 AM, Mike Shaw <[email protected]>
> > wrote:
> > >
> > > Joe,
> > >
> > > TEST knows where it set breakpoints.
> > >
> > > AFAIK you can't fake it out by moving code and branching to an area
> that
> > > is not within any program extent and trying to breakpoint there.
> > >
> > > Mike Shaw
> > > MVS/QuickRef Support
> > > Chicago-Soft, Ltd.
> > >
> > >
> > >> On Sun, Oct 13, 2024, 9:43 PM Joseph Reichman <
> > >> [email protected]> wrote:
> > >>
> > >> Hi
> > >>
> > >> I am having all sorts of problems with the TEST Call subcommand
> > >> specifically restoring the USER program R14 value
> > >>
> > >> The Documentation says the return value whether you use RESUME "which
> > >> specifies upon completion of execution, the called program returns
> > control
> > >> to the address of the last breakpoint before the CALL".
> > >>
> > >> In this case r14 points to address of where the breakpoint is
> > >>
> > >> Or you can explicitly set where you want to return by coding RETURN
> and
> > >> having R14 point to where you want to return
> > >>
> > >> The problem is in either case one has to set the USER programs R14
> back
> > >>
> > >> What I wanted to do is return to the breakpoint which had the call
> only
> > >> this
> > >> time without calling the user program
> > >>
> > >> Now it seems to me the only way to get this done is by
> > >>
> > >>
> > >> First Save the address of where the breakpoint is upon entry
> > >>
> > >> Then have R14 point to a DUMMY breakpoint by that I mean you have a
> > >> workarea
> > >> obtained with TEST subcommand GETMAIN (passed as a parm) to the user
> > prog
> > >> have some area 2 bytes with a nop
> > >>
> > >> X'0700' and in the called program branch back to it so for example
> > >>
> > >> use the following TEST subcommand
> > >> Assume the original R14 was saved in workarea+4
> > >>
> > >> AT WORKAREA+30 (COPY WORKAREA+4 R14 LENGTH(4); AT WORKAREA+40? ; GO
> > >> WORKAREA+40?)
> > >>
> > >>
> > >>
> > >> This code would
> > >>
> > >> First seem to go to dummy breakpoint
> > >> Second retore the user program value of R14 Third set a breakpoint at
> > the
> > >> original breakpoint (without a call) Fourth go to the breakpoint
> > >>
> > >> However I keep on getting a S0C4
> > >>
> > >>
> > >> The following is snippets of the user program
> > >>
> > >>
> > >> USERPROG CSECT
> > >> USING R3,USERPROG
> > >> LR R3,R15
> > >> ST R14,RETURN
> > >>
> > >> MVC DUMMYBREAK,=X'0700'
> > >>
> > >> LA R14,DUMMYBREAK
> > >> BR R14
> > >>
> > >>
> > >>
> > >>
> > >> WORKAREA DSECT
> > >>
> > >>
> > >> 0030 DUMMYBREAK DS XL2
> > >> 0040 RETRUN DS A
> > >>
> > >> ----------------------------------------------------------------------
> > >>
> > >>
> > >> ----------------------------------------------------------------------
> > >> For IBM-MAIN subscribe / signoff / archive access instructions,
> > >> send email to [email protected] with the message: INFO
> IBM-MAIN
> > >>
> > >
> > > ----------------------------------------------------------------------
> > > For IBM-MAIN subscribe / signoff / archive access instructions,
> > > send email to [email protected] with the message: INFO IBM-MAIN
> >
> > ----------------------------------------------------------------------
> > For IBM-MAIN subscribe / signoff / archive access instructions,
> > send email to [email protected] with the message: INFO IBM-MAIN
> >
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
>
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN