[Binyamin Dissen] 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.

Without knowing anything more about this problem that what little you say here, I would guess that the most likely culprit would be that your program created an ESTAE(X) what was newer than the ESTAE(X) that was z/XDC. Thus, when the abend or breakpoint was reached, your ESTAE(X) received control ahead of z/XDC.

Often in this sort of situation, a sophisticated ESTAE(X), after taking a dump, or setting footprints or some such, will perform some sort of cleanup/shutdown processing (freemain storage areas, close datasets, whatever) prior to percolating, at which point, z/XDC will receive control.

Eventually, the user will issue a GO or TRACE to resume execution. This will cause the main program to resume execution in an environment that has been corrupted by the user's own ESTAE(X), so all hell will break loose.

When debugging, and when z/XDC receives control, you can find out whether or not newer ESTAE(X)s exist (and have percolated control to z/XDC) simply by issuing a LIST SCBS command.

You can avoid the problem altogether simply by being aware of what you are doing and by using a HOOK command (instead of an AT or TRAP) command to set your initial breakpoint in code that runs after a newer ESTAE(X) has been created.


Maybe that's what happened to you, maybe not, I don't know. Certainly, there are other causes of programs running differently with vs. without z/XDC present in the environment. Usually, such discrepancies are indicative of otherwise hidden pathological behavior on the part of the user's program, the most common of which would be the use of an uninitialized pointer field.

When z/XDC is added to the environment, the shape of allocated storage changes. So an uninitialized field might normally contain a zero, but when shapes change, said field might now contain a non-zero, and things will go south in random ways. So the fact that a program "works when z/XDC is removed" usually means that there is something wrong with the program, not with z/XDC. And removing z/XDC does not fix the problem, it merely lets it go back into hiding.






[Binyamin Dissen] 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.

That's a shame, because it would have been interesting to get to the root of the problem. Certainly, if said root had been an actual z/XDC bug, I would have fixed it, and everybody would have benefited from that.

However, if it had been a subtile misbehavior of your program, then you missed an opportunity to improve your program.

And (as I think is the likeliest case) if the misbehavior had arisen from a problem with the way in which you were using z/XDC, then I could have given you helpful suggestions, and perhaps you would have found the product to be more useful that you expected.

Oh well.


Dave Cole              REPLY TO: [EMAIL PROTECTED]
Cole Software          WEB PAGE: http://www.xdc.com
736 Fox Hollow Road    VOICE:    540-456-8536
Afton, VA 22920        FAX:      540-456-6658

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