On Mon, 1 Jan 2007 14:17:07 -0500 "Craddock, Chris" <[EMAIL PROTECTED]>
wrote:

:>I don't work for Dave Cole and he doesn't owe me anything, but I have to
:>defend his honor here...

I am by no means challenging his honor.

I am not attempting to attack his product.

:>> The problem I have with XDC is that its method of trapping (an 0C1):
:>> 1. Requires environment changes to support its ESTAE and the normal
:>ESTAE
:>> logic doesn't seem to work well 

:>It depends on your approach. I have a single set of recovery routines
:>that deal with all aspects of recovery and diagnostics. I recognize when
:>I am in a debugging situation and call XDC right out of the mainline of
:>my recovery code. 

:>The XDC debug session does whatever it is going to do. XDC sets up the
:>environment appropriate for what the user did. When XDC returns control
:>to the recovery routine it gives either RC=4, in which case I simply
:>return to RTM and life goes on, or RC=0 - which indicates that I am to
:>proceed with recovery processing myself. 

:>You would see RC=4 if, for example the user said "GO", or any of the
:>forms of TRACE. Basically anything where control was expected to pass
:>back to the application. You would see RC=0 is the user had said "END
:>NOASK" or any variation thereof. In that case the expectation is that
:>normal recovery (if any) will come into play. The issue of whether the
:>application eventually regains control via a retry (in this case)
:>depends on what the application's own recovery does. That's how you test
:>your own recovery logic.

:>That approach is utter simplicity and is completely consistent with what
:>RTM expects a recovery program to do. You could even use XDC directly as
:>a recovery routine (although I would NOT do that) or you can just treat
:>it as part of your built-in debugging environment. 

:>The only time you run into trouble with "who's on first?" situations is
:>those cases where you're trying to plant a debugging environment from
:>the outside - and that's fraught with difficulty anyway. 

All I can say is that I had unexpected results using XDC when my code wanted
to retry. 

The problems did not occur when XDC was removed from the picture.

I guess I could have spent time trying to debug the issue, but I found it
easier to proceed without it.

:>> TEST works better in that regard

:>I really don't agree at all. TEST is a pathetic debugger and it only
:>supports task mode under TSO and even that is only done in a
:>half-hearted fashion. I cannot think of ANYTHING where I would consider
:>TEST to be superior. 

TEST works in the batch TMP as well.

I can script a TEST session to debug a batch program.

And it is extremely powerful. I have been using it for more than 20 years.

:>> 2. Does not support locked environments (neither does TEST)

:>True. And since there's nothing (other than a VM system) that can test
:>locked or disabled code, it is hardly a fair criticism of XDC.

Only to the claim that XDC can test system programs - there are limitations.

:>> 3. Provide consistent data in a multiprogramming environment, where
:>other
:>> threads may be changing data that caused the trap (neither does TEST)

:>XDC works very well in heavily multitasked environments, but you do have
:>to know what you're doing with it. I would assume that anyone capable of
:>developing a complex multitasking application would likewise be able to
:>use XDC to debug it.

You set a trap at an instruction, but when you look at the data you shouldn't
have made it there - because the data has changed in the meantime.

A difficult problem to shoot if you don't cause a stop when it occurs.

:>> It probably is a quite adequate tool for other environments when the
:>> application code does not have ESTAE's that sometimes retry).

:>XDC works with any ESTAE-class recovery (STAI, STAE, ARR) and with FRRs
:>set by enabled and unlocked programs. The locked/disabled case was
:>mentioned above and those are pretty difficult to debug with any tool
:>including VM.

Or, as above.

:>> I am all for Full Screen / Source Level debuggers - but no product out
:>> there really does the job well enough (IMHO).

:>That's in the eye of the beholder I suppose. XDC has been extremely
:>useful for me. The fact that XDC doesn't support locked/disabled code is
:>certainly no reason to disparage it, particularly in comparison with
:>other approaches.

I am not trying to "disparage" it.

I was pointing out the limitations.

I write a lot of system exit code which get control in weird situations, and
sometimes early in the IPL process.

I am sure that it is quite adequate to test a standard APF program or a new
SVC (though I really don't go to the effort to use XDC in those situations
since it is easier for me to setup PER or SLIP/GTF).

:>> It could be done via CP (under VM) but
:>> I don't see the great return over the effort.

:>That's pretty much what the IBM developers have already. Unfortunately
:>their bag of tricks is not shared with the outside world. As far as I
:>can tell, XDC is the best alternative in the wild.

Different strokes .....

I find PER to be superior in trapping. XDC certainly will provide better
displays.

:>> One of there days I will
:>> probably get around to writing a CP command with the full
:>functionality of
:>> indirect addressing of the TEST LIST command (cannot figure out how to
:>do
 
:>>         L 1R?+8?+C?
 
:>> via the D command).

:>Pretty much what you have above, but with a D instead of an L :-)
:>But seriously, the command syntax is documented and there is online
:>help. 

I have tried and cannot figure out how to do it.

I have to do a series of displays, down the chain.

Perhaps you can give me the syntax to do the above?

:>> I have no problem at all with dump formatters as they do not have any
:>of
:>> the drawbacks above.

:>Pardon?!! You have got to be kidding right?

Drawbacks being locks and serialization.

:>Aside from the sheer time wasting effort in capturing and processing a
:>dump, you can't just dynamically add control block formatters in an IPCS
:>session. With an online debugger (XDC in this case) you can trace
:>executing code a line at a time if you want, you can display registers
:>and storage, you can map and format code and data areas... a whole bunch
:>of things that you cannot do at all in a dump. 

IPCS certainly call dump formatters.

Yes, there is the problem with a dump in that you can't change something and
have it go on. But it will capture a true system state.

--
Binyamin Dissen <[EMAIL PROTECTED]>
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel


Should you use the mailblocks package and expect a response from me,
you should preauthorize the dissensoftware.com domain.

I very rarely bother responding to challenge/response systems,
especially those from irresponsible companies.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to