ColeSoft Marketing produces superior debugging products for software engineers and support staff working on IBM Mainframes.
IBM's new Z16 machine brings with it 22 new machine instructions as well as 16 new extended mnemonics. We have just published DBC-2206D to add support into z/XDC for formatting and displaying these new instructions.
There's a new TRACE command in town. It's called T BNC ("Branch-No-Call" trace). It works just like T BY except that it steps over subroutine calls! Specifically:
- It follows your program's execution looking for branching instructions that will actually branch.
- When execution reaches a linkage instruction (BAS, BAL, JAS, etc.),
- And that instruction is being used to call a subroutine with return expected,
- Then execution will not be followed into the subroutine.
- Instead, recapture traps will be set at the return addresses,
- And the subroutine will be allowed to run without being followed.
The major benefit of this change is that it makes it considerably more viable than previously to use conditional tracing!
The last major change to z/XDC was the introduction of dump/XDC back in August. See LIST HELP DUMPS.) Since then we have published quite a number of fixes and changes of various sorts, as well as some lesser additions to z/XDC's commands and capabilities. This article is a brief summary of those additions.
All of the changes described below (as well as the rest of z/XDC) can be used both in classic z/XDC and when analyzing dumps via our dump/XDC Licensed Feature.
For a complete index of all changes, see HELP MAINTENANCE.
Also, updated versions of the z/XDC Manuals have been published. You can find them under the Support Menu.
LIST PC# is a new command that emits either summary lists or detailed displays of PC routines. The summary lists can show:
- PCs available to a given aspace
- PCs resident in a given aspace
- PCs defined by the System Function Table (SFT)
- PCs that are global to all aspaces (in addition to the SFT routines)
- PCs that are private to particular aspaces
- PCs that match a range or list of specific numbers
Throughout the past year our friend Kevin Pintar of Imperva has been kind enough to help us in beta testing our newest XDC feature: dump/XDC. Kevin and his colleagues have been invaluable in helping us test and polish dump/XDC and he had the following to say about the product.
dump/XDC is a new Licensed Feature that gives z/XDC the ability to examine SYSMDUMPs, IEATDUMPs, SVC dumps, operator dumps and stand alone dumps using z/XDC's command set (not just IPCS's).
Now, you can use both z/XDC and c/XDC mapping and formatting capabilities to display dumped storage as:
- Source image assembler programs,
- Source image C, C++, Metal C and System C programs,
- System and user control blocks and data areas,
- C variables, arrays, structures and slices,
- And object code disassembly.
dump/XDC integrates into IPCS, so you can go back and forth using either product's commands when rummaging around in the dump. z/XDC will capture IPCS's reports and present them to you within z/XDC's own displays.
We recently published a couple of z/XDC updates (DBC-2108C and DBC-2108I) That reorganize all maintenance related topics into a more sensible and more readable structure, and consolidated them into one branch of the Built-in Help. That new branch is named HELP MAINTENANCE.
There also is a new, downloadable PDF named z/XDC Maintenance and New Functionality Guide.
And the old z/XDC Release Guide is now retired.
Update DBC-2108A adds T as a new Point-and-Shoot command. This is most useful when placed on the targeting operand of any branching (or jumping) instruction. It sets a temporary breakpoint at the branch's target. So if you have several branch instructions in view, you can easily set traps at all of their targets with a single ENTER press, and without having to actually view those targets first.
If your program needs to know where the XDC load module is, previously, you had to use IBM's LOAD macro which issues an SVC instruction. Now, you can instead use our #XDCLOC8 macro because it finds the XDC load module just by chaining through a couple of system control blocks.
This means that your programs that run in constrained environments that cannot tolerate LOAD macros, can still find XDC by using our #XDCLOC8 macro.