(Agreeing with Dave Cole)

Beyond that, the whole idea that you can rationally "know" the identity of the 
calling program is pretty naive. Load modules are composed of multiple 
sections, any of which might call any other piece of code anywhere anytime. 
Throw multiple modules in being called from multiple RBs in multiple tasks and 
it ought to become obvious that there's just no way to know reliably - and nor 
should you.

Making implicit assumptions about your caller creates code dependencies that 
will remain undocumented, waiting to bite the unwary. And perfectly innocent 
new code can/will break at o'dark. If you want to do something special based on 
"who", then make it an explicit parameter, document the interface and then use 
it.

CC

Date: Mon, 8 Jul 2013 11:57:10 -0400
From: [email protected]
Subject: Re: Xpediter debugger tool  Vs.  CSVQUERY Macro
To: [email protected]



Your expectation
needs a change.  When running under a debugger you should

expect that the return point could be to the debugger's code rather
than

your own code.  I don't know anything about Xpediter or the
techniques that

it employs, but this would apply to most debuggers including ours. 
If your

code needs to know the name of your program that called it, the only

accurate way would be to pass it rather than try and discover
it.

I just want to point out that this issue does not arise when using z/XDC.
As much as possible, z/XDC changes your program's execution environment
as little as possible. In particular, it does not use "redirection
technology" for anything at all.


IHTH,

Dave
Cole             
REPLY TO:
[email protected]

ColeSoft Marketing     WEB PAGE:
colesoft.com

736 Fox Hollow Road    DESK:    
540-456-8536

Afton, VA 22920       
CELL:     540-456-6518 










At 5/30/2013 10:48 AM, Chuck Arney wrote:

If you are using the return
address (R14) in your code to determine the name

of the calling module, I believe it could frequently be something you
did

not expect when your code is running under a debugger.  Debuggers
often use

redirection technology of one sort or another to maintain control over
the

code being debugged.  It is a required part of the job.


Your expectation needs a change.  When running under a debugger you
should

expect that the return point could be to the debugger's code rather
than

your own code.  I don't know anything about Xpediter or the
techniques that

it employs, but this would apply to most debuggers including ours. 
If your

code needs to know the name of your program that called it, the only

accurate way would be to pass it rather than try and discover
it.


Chuck Arney

Arney Computer Systems

zosdebug.com









-----Original Message-----

From: IBM Mainframe Assembler
List
[
mailto:[email protected]]

On Behalf Of Alexandre Franke

Sent: Wednesday, May 29, 2013 10:31 PM

To: [email protected]

Subject: Xpediter debugger tool Vs. CSVQUERY Macro


Hello ! We have an assembler subroutine that invokes CSVQUERY macro in
order

to get its caller program name, but when running it under Xpediter,
it

doesn't work. It seems the addresses CSVQUERY look for are messed
up...

Does anyone know how CSVQUERY results could be changed when testing
under

Xpediter debugging session? Thank you, Alexandre
Franke                                    

Reply via email to