FWIW,

some years ago (maybe 2010), I replaced the breakpoint mechanism in a home grown debug tool written by my customer; the breakpoints were implemented by capturing the S0C1 interrupts of hex zero insertions into the load module instead of real opcodes. I now insert TRAP2 instead of hex zero.

So: I know how to do this ... maybe others on this list, too. The problem is: to insert the address of the TRAP handler routine into the DUCT, you need to be authorized. In our installation, we created something like a special "user SVC" to do this (don't know the details, because this was done by our systems people). That is: a special SVC which only allows to "configure the DUCT". I wrote the specification, and then the
systems people created the SVC.

All other actions can be done by normal non-authorized code ... this is kind of easy. The rest of the debug tool remained unchanged. The debug tool was much faster after this change, because the RTM work involved
by the S0C1 handling is now saved.

This is a very special application, of course, and I never would have thought about using TRAP2, if the debug tool of the customer didn't exist already (since the 1980s, long before TRAP2 arrived, which was ca. 2000, IIRC). But when I learned about the internals of the debug tool (the S0C1 mechanism), it seemed sort of natural to me to think about this TRAP2 replacement. And the customer allowed me to give it a try.

If you want to know more, feel free to ask me offline; maybe I remember the details after all this time. The debug tool is still in daily use by the developers at the customer's site (for PL/1 and ASSEMBLER programs).

Kind regards

Bernd



Am 01.03.2023 um 17:32 schrieb Farley, Peter:
<*Sigh*> Yes, I do understand the "business justification/resource allocation" 
argument/excuse.  I deal with similar issues all the time in my employer's business.  I hate 
it, but it is real.

IMHO the IBM z/OS development team should never have *needed* a "formal 
request/requirement" to implement OS support for an implemented architectural 
feature.  There is a new hardware feature, our clients will no doubt wish to take 
advantage of its benefits, let's support that feature.  Full stop.

But please accept my apologies, I am obviously beating that poor dead horse 
once again.

As an alternative, would it ever be possible for IBM to publish the program design and 
detailed error-handling needed to practically and *safely* use the TRAP feature?  Maybe a 
Redbook project sponsored by the Debug Tool team?  Something detailed enough to enable a 
knowledgeable independent developer to produce the code you say IBM won't ever write.  I 
wouldn't expect the major ISV's to undertake it, it is far too small a market for them to 
spend real money on (there is that dad-blasted "business justification" thing 
again), but an independent developer might wish to spend *their* private time on getting 
it done, IFF they had all the details needed to do it the right way without needing to 
guess what to do.

I would hope that publishing information on how to properly and safely use an 
existing (and already published) architectural feature wouldn't run afoul of IP 
concerns.

Peter

-----Original Message-----
From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf Of 
Peter Relson
Sent: Wednesday, March 1, 2023 9:57 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: z/OS 3.1 Announcement US Letter

EXTERNAL EMAIL

Peter F wrote:
<snip>
What I would like to know is when z/OS development will finally manage to find 
the round tuits to actually implement a supported API to actually be able to 
USE the TRAP (and compare-and-trap) instructions introduced to the architecture 
so long ago I have forgotten which zArch generation they in came with (and I'm 
too tired to go looking for that generation today).
</snip>

I believe IBM Debug Tool uses this. But you're right that there is no API 
provided.

And given the amount of time that has gone by and the fact that, to my knowledge, there 
never has been a formal request/requirement submitted asking for such an API, the answer 
to your question (unless such a requirement is submitted) is, in practice, 
"never".

And a new requirement might be declined unless there is significant business 
justification that would make this a good candidate.

We all wish that we were in a world where "should" would match "it is", but there is always a 
resource tradeoff to be made between competing items and the question has to be answered of what would you the customer 
(and IBM) be willing to sacrifice getting in order to get "this". "Should" only takes you so far. 
That should be apparent to all (but many discussions on IBM-Main do not seem to take that into account).

Peter Relson
z/OS Core Technology Design
--

This message and any attachments are intended only for the use of the addressee 
and may contain information that is privileged and confidential. If the reader 
of the message is not the intended recipient or an authorized representative of 
the intended recipient, you are hereby notified that any dissemination of this 
communication is strictly prohibited. If you have received this communication 
in error, please notify us immediately by e-mail and delete the message and any 
attachments from your system.

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

----------------------------------------------------------------------
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